【发布时间】:2017-10-10 10:57:26
【问题描述】:
我将标识符更改为英文,以便在 Code Review 上易于理解。我使用了重构,所以它立即改变了所有地方,但那是它出错的时候。我的代码不再工作了。虽然代码没有完成。我仍然需要找到重新玩的方法。我在这里做错了什么?
目标:
创建一个控制台应用程序,您需要在其中猜测 1 到 100 之间的随机生成的数字。当您的猜测低于生成的数字时,它会显示更高。如果它高于生成的数字,它会说更低。检查代码中的 cmets。
public static void Main(string[] args)
{
const int STOPVALUE = 0;
int inputNumber, count = 0;
Random generator = new Random();
int gameNumber = generator.Next(1, 100);
//I output the game number to see beforehand want the winning number is.
//The generator is doing it's job right.
Console.WriteLine(gameNumber);
//Here is where it goes wrong and i can't seem to understand why.
//It keeps saying go higher even when the input number is 100.
do
{
Console.Write("(Stop Value: 0) Insert a number: ");
inputNumber = int.Parse(Console.ReadLine());
count++;
if (gameNumber == inputNumber)
{
Console.WriteLine("Your guess is correct.");
Console.WriteLine("Number of turns: " + count);
count = 0;
Console.WriteLine("Play again? (Y/N)");
char startOver = char.Parse(Console.ReadLine());
if (startOver == 'Y')
{
return;
}
if (startOver == 'N')
{
Environment.Exit(0);
}
}
if (inputNumber > gameNumber)
{
Console.WriteLine("Higher");
}
if (inputNumber < gameNumber)
{
Console.WriteLine("Lower");
}
}
while (inputNumber != STOPVALUE);
}
【问题讨论】:
-
假设您了解您拥有的代码 - 究竟是什么阻止了您继续“再次播放”部分?
-
只需颠倒条件即可。代码正在做你告诉它做的事情。
if (inputNumber > gameNumber)因此,当输入为 100(可能大于随机数)时,您输出“更高”