以下是我的代码
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,那么它应该开始,用户应该再次输入数字。现在它正在关闭控制台应用程序。如何把时间厕所
答案 0 :(得分:2)
您只是在循环开始之前更改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");
}
}
答案 1 :(得分:2)
添加
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 !");
}
}
答案 2 :(得分:0)
嗯,input1
在循环内的任何地方都不会改变。因此,当然,如果循环输入一次,则每次都输入。
答案 3 :(得分:0)
while (input1 != 4)
{
Console.WriteLine("Try agian");
}
在上面的代码中,input1
的值永远不会改变,所以它永远循环
答案 4 :(得分:0)
我更正了你的缩进,你可以看到你的while块只包含Console.WriteLine,而不是输入检查,所以input1不会改变,你的循环是无限的。
如果删除Console.WriteLine下的}并将其放到最后,则可以使用4输入来停止循环。
答案 5 :(得分:0)
我修改了您的代码,请检查
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(),这样就不需要输入doble time
答案 6 :(得分:-1)
你正在关闭while循环的}
之上有一个额外的if (input1 == 4)
,所以while循环永远不会退出,因为它里面没有代码。将该大括号向下移动到if else
下方。