两次猜测后,为什么这个程序停止运行?

时间:2015-10-07 22:55:55

标签: c# loops response

我正在创建一个简单的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();
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您的“同时”条件不正确,它目前检查该号码是否在1-100范围内,同时应检查该号码是否正确。

我会将其更改为:

while(guess != randomNumber); 
当pp值正确时

或中断:

if (guess == randomNumber)
{
    Console.WriteLine("Correct!");
    break;
}

我还会注意到,修复算法后,您的“响应”值目前无效。

答案 1 :(得分:0)

您不需要将猜测作为双精度,因为随机数只会生成一个整数。此外,也不需要responsece变量,因为循环可以循环直到:

while(guess != randomNumber);
像上面的回答说的那样。如果您想要添加用户猜测数量猜测次数的计数,请在开始“执行”循环之前添加计数变量。

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.");
}