而C#中的循环是无限的
本文关键字:无限 循环 | 更新日期: 2023-09-27 18:02:51
下面是我的代码
namespace ProgrammingTesting
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("GUESS THE ANSWER");
Console.WriteLine("Please enter the input");
int input1 = (int.Parse(Console.ReadLine()));
while (input1 != 4)
{
Console.WriteLine("Try agian");
}
if (input1 == 4)
{
Console.WriteLine("You are a winner");
Console.ReadLine();
}
else if (input1 < 4)
{
Console.WriteLine("TOOOOO low");
Console.ReadLine();
}
else if (input1 > 4)
{
Console.WriteLine("TOOOO high");
Console.ReadLine();
}
}
}
}
我在这里放置了一些条件,但仍然无法继续。它正在无限循环
在这里,我想应用一个条件,如果用户输入了一个4以外的数字,那么它应该开始,用户应该再次输入这个数字。现在正在关闭控制台应用程序。如何放置while loo
您只是在循环开始之前更改input1
的值。既然你再也不会改变它,它将永远循环。
编辑:你可能想考虑为你的循环做以下事情:
int input1 = 0;
while (input1 != 4)
{
input1 = (int.Parse(Console.ReadLine()));
if (input1 == 4)
{
Console.WriteLine("You are a winner");
}
else if (input1 < 4)
{
Console.WriteLine("TOOOOO low");
Console.WriteLine("Try agian");
}
else if (input1 > 4)
{
Console.WriteLine("TOOOO high");
Console.WriteLine("Try agian");
}
}
添加
input1 = (int.Parse(Console.ReadLine()));
在while循环结束时,或input1将永远不会更改。
但这还不够。
你应该做(不好,但工作(
static void Main(string[] args)
{
Console.WriteLine("GUESS THE ANSWER");
int answer;
var success = false;
Console.WriteLine("Please enter the input");
while (!success) {
var userInput = Console.ReadLine();
if (!Int32.TryParse(userInput, out answer))
Console.WriteLine("You must enter an integer");
else {
if (answer < 4)
Console.WriteLine("Too low");
else if (answer > 4)
Console.WriteLine("Too high");
else {
Console.WriteLine("Grats !");
success = true;
}
}
if (!success)
Console.WriteLine("Try again !");
}
}
我已经修改了您的代码,请检查
namespace ProgrammingTesting
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("GUESS THE ANSWER");
Console.WriteLine("Please enter the input");
int input1 = 0;
while (input1 != 4)
{
input1 = (int.Parse(Console.ReadLine()));
if (input1 == 4)
{
Console.WriteLine("You are a winner");
Console.ReadLine();
}
else if (input1 < 4)
{
Console.WriteLine("TOOOOO low");
}
else if (input1 > 4)
{
Console.WriteLine("TOOOO high");
}
}
}
}
}
删除Console.Readline((,这样您就不需要输入多臂时间
好吧,input1
在循环中的任何地方都不会改变。所以,自然地,如果循环被输入一次,那么它每次都被输入。
while (input1 != 4)
{
Console.WriteLine("Try agian");
}
在上面的代码中,input1
的值从未改变,因此它永远循环
我更正了你的缩进,你可以看到while块只包含Console.WriteLine,而不包含输入检查,所以input1不会改变,你的循环是无限的。
如果删除Console.WriteLine下的}并将其置于末尾,则可以在输入中键入4时停止循环。
在关闭while循环的if (input1 == 4)
正上方有一个额外的}
,所以while循环永远不会退出,因为它里面没有代码。将大括号向下移动到if else
下方。