C# 我的while语句有什么问题?Else声明获胜';不写
除else语句外,所有语句都正常运行。一旦数字相等,它就会被跳过。结尾没有说“你明白了”C# 我的while语句有什么问题?Else声明获胜';不写,c#,while-loop,C#,While Loop,除else语句外,所有语句都正常运行。一旦数字相等,它就会被跳过。结尾没有说“你明白了” //declare variables int number = 4; int guessCount = 0; int guess; //get first number Console.WriteLine("Guess a number between 1 and 10:"); guess = Convert.ToInt32(Console.ReadLine()); guessCount = guess
//declare variables
int number = 4;
int guessCount = 0;
int guess;
//get first number
Console.WriteLine("Guess a number between 1 and 10:");
guess = Convert.ToInt32(Console.ReadLine());
guessCount = guessCount + 1; //increment counter
while (guess != number) //keep repeating until number is chosen
{
guessCount = guessCount + 1; //increment counter
if (guess < number) //if statement if guess is less than number
{
Console.WriteLine("Your guess is too low.");
}
else if (guess > number) //if statement if guess is more than number
{
Console.WriteLine("Your guess is too high.");
}
else //
{
Console.WriteLine("You got it!!");
}
//end of while to ask for a new guess
Console.WriteLine("Guess again: ");
guess = Convert.ToInt32(Console.ReadLine());
}
//display output
Console.WriteLine("You figured it out in " + guessCount + " guesses.");
Console.ReadLine(); //keep window open
//声明变量
整数=4;
int猜测计数=0;
智力猜测;
//获得第一个号码
WriteLine(“猜一个介于1和10之间的数字:”);
guess=Convert.ToInt32(Console.ReadLine());
猜数=猜数+1//增量计数器
while(guess!=number)//不断重复,直到选择了数字
{
guessCount=guessCount+1;//递增计数器
if(guessnumber)//if语句if guess大于number
{
WriteLine(“你的猜测太高了。”);
}
否则//
{
Console.WriteLine(“你明白了!!”);
}
//在这段时间结束后,询问一个新的猜测
控制台。WriteLine(“再次猜测:”);
guess=Convert.ToInt32(Console.ReadLine());
}
//显示输出
WriteLine(“你在“+guessCount+”guesses.”中找到了答案);
Console.ReadLine()//让窗户开着
当它进入而循环时,它意味着猜测是=
number
这里唯一可能的状态是您已经检查过的guess
和guess>number
,并且guess=number
是没有意义的,因为如果guess
等于number
它甚至不会进入循环。这就是为什么您的else
语句从不执行,因为您的else
语句检查的唯一状态是guess==number
您的表达式状态:guess!=数字,只要用户不键入4(您的硬编码值),则该值为真。您正在检查while表达式之前设置guess,因此如果用户键入正确的数字,while表达式将为false,并将跳过。我在问题所在的位置对您的代码进行了注释
//declare variables
int number = 4;
int guessCount = 0;
int guess;
//get first number
Console.WriteLine("Guess a number between 1 and 10:");
// Problem A: user types in 4 -> guess becomes equal to number -> while expression gets false -> while body will not be executed
guess = Convert.ToInt32(Console.ReadLine());
while (guess != number) //keep repeating until number is chosen
{
guessCount = guessCount + 1; //increment counter
if (guess < number) //if statement if guess is less than number
{
Console.WriteLine("Your guess is too low.");
}
else if (guess > number) //if statement if guess is more than number
{
Console.WriteLine("Your guess is too high.");
}
else //
{
Console.WriteLine("You got it!!");
}
//end of while to ask for a new guess
Console.WriteLine("Guess again: ");
// Problem B: user types in 4 -> guess becomes equal to number -> while expression gets false -> loop ends
guess = Convert.ToInt32(Console.ReadLine());
}
//声明变量
整数=4;
int猜测计数=0;
智力猜测;
//获得第一个号码
WriteLine(“猜一个介于1和10之间的数字:”);
//问题A:用户在4中键入->猜测变为等于数字->而表达式变为假->而正文将不执行
guess=Convert.ToInt32(Console.ReadLine());
while(guess!=number)//不断重复,直到选择了数字
{
guessCount=guessCount+1;//递增计数器
if(guessnumber)//if语句if guess大于number
{
WriteLine(“你的猜测太高了。”);
}
否则//
{
Console.WriteLine(“你明白了!!”);
}
//在这段时间结束后,询问一个新的猜测
控制台。WriteLine(“再次猜测:”);
//问题B:用户在4中键入->猜测变为等于数字->而表达式变为false->循环结束
guess=Convert.ToInt32(Console.ReadLine());
}
while(guess!=number)
我迫不及待地想赢并得到答案“你猜对了!再猜一次”你需要连续猜两次才能退出while
循环