为什么这个程序在猜了两次之后就停止运行了?
本文关键字:之后 两次 运行 程序 为什么 | 更新日期: 2023-09-27 18:16:39
我正在创建一个简单的c#控制台应用程序游戏,它创建一个随机数,然后显示"太高","太低"或"正确",然后应该要求用户输入另一个数字&然后告诉他们这个数字是"太高","太低"还是"正确",一旦猜对了,它应该说"正确",然后显示猜对了多少次才得到正确的数字(这部分我不知道怎么做)。除此之外,我还创建了代码&它会告诉你你的猜测是过高还是过低,一旦你尝试输入第二个猜测,它就会自动显示它是正确的。如何让程序读取更多的猜测,以及如何显示猜测的次数?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _5.Number_Game
{
class Program
{
static void Main(string[] args)
{
double response, guess;
Random random = new Random();
int randomNumber = random.Next(1, 101);
do
{
Console.WriteLine("Enter your guess for a random number between 1 & 100");
guess = double.Parse(Console.ReadLine());
if (guess > randomNumber)
Console.WriteLine("Too high");
if (guess < randomNumber)
Console.WriteLine("Too low");
if (guess == randomNumber)
Console.WriteLine("Correct!");
Console.WriteLine("Enter another number");
response = double.Parse(Console.ReadLine());
}
while (response <= 1 && response >=100);
Console.WriteLine("Correct, Goodbye!");
Console.ReadLine();
}
}
}
你的"while"条件不正确,它目前检查数字是否在1-100范围内,而它应该检查它是否是正确的数字。
我会把它改成:
while(guess != randomNumber);
或在正确值上时中断:
if (guess == randomNumber)
{
Console.WriteLine("Correct!");
break;
}
我还会注意到,一旦你修复了你的算法,你的"响应"值目前是无用的。
您不需要将您的猜测作为双精度,因为随机数只会生成整数。此外,也不需要响应变量,因为循环可以循环到:
while(guess != randomNumber);
就像上面说的答案。如果您想添加一个计数,表示用户猜了多少次才猜出数字,请在开始的'do'循环之前添加一个计数变量。
int count = 0;
do
{
当用户每次猜错时,它会将计数加1,就像这样:
if (guess > randomNumber)
{
Console.WriteLine("Too high");
count += 1;
}
if (guess < randomNumber)
{
Console.WriteLine("Too low");
count += 1;
}
最后当用户猜对时
if (guess == randomNumber)
{
Console.WriteLine("Correct!");
Console.WriteLine("You took " + count + "guesses, to guess that number.");
}