Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#校正的for循环的猜谜游戏_C#_Visual Studio 2012 - Fatal编程技术网

使用C#校正的for循环的猜谜游戏

使用C#校正的for循环的猜谜游戏,c#,visual-studio-2012,C#,Visual Studio 2012,我已经为以下程序编写了代码: 在for循环代码块中,我需要执行以下逻辑: 在屏幕上显示“输入猜测:”(例如,“输入猜测2:”其中#是 猜测用户是否在上) 从用户处获取一个数字,并将输入的值存储在输入变量中进行测试 将“输入”转换为整数(int32)并存储在“猜测”中。 d、 确定输入的数字(现在存储在“guess”中)是否为正确答案,并采取以下操作之一: 如果输入的值是答案,则显示“您赢了”,并退出循环 告诉用户他们的猜测高于或低于答案 如果用户无法在5次猜测中猜出答案,则显示“您输了” 我

我已经为以下程序编写了代码:

在for循环代码块中,我需要执行以下逻辑:

  • 在屏幕上显示“输入猜测:”(例如,“输入猜测2:”其中#是 猜测用户是否在上)
  • 从用户处获取一个数字,并将输入的值存储在输入变量中进行测试
  • 将“输入”转换为整数(int32)并存储在“猜测”中。 d、 确定输入的数字(现在存储在“guess”中)是否为正确答案,并采取以下操作之一:
    • 如果输入的值是答案,则显示“您赢了”,并退出循环
    • 告诉用户他们的猜测高于或低于答案
  • 如果用户无法在5次猜测中猜出答案,则显示“您输了”
  • 我发现这个代码有错误,有人能帮我吗

        int answer = 0, guess;
        string input = "" ;
        //Create an oject of the Random class
        Random number = new Random();
        answer = number.Next(1, 11);
    
    
    
        answer = number.Next(1, 11);
        Console.WriteLine("Select Randomly Number between 1 and 10 ");
     //   guess = (Convert.ToInt32(Console.ReadLine()));
        for (int i = 1; i <=5; i++)
        {                
            Console.Write("Enter Guess :");
            guess = Convert.ToInt32(Console.ReadLine());
            if (guess > answer)
            {
                Console.WriteLine("Guess is Higher");
            }
            else if (guess < answer)
            {
                Console.WriteLine("Guess is Lower");
            }
            else
            {
    
                Console.WriteLine("You Won !!\t {0} is the correct number", guess);
                break;
                i = 6;
    
            }
        }
        Console.WriteLine("You Loose");
        Console.WriteLine("The answer is {0} ", answer);
        Console.ReadKey(); 
    
    int-answer=0,猜测;
    字符串输入=”;
    //创建Random类的项目
    随机数=新随机数();
    答案=数字。下一个(1,11);
    答案=数字。下一个(1,11);
    Console.WriteLine(“随机选择1到10之间的数字”);
    //guess=(Convert.ToInt32(Console.ReadLine());
    for(int i=1;i回答)
    {
    控制台。WriteLine(“猜测更高”);
    }
    else if(猜测<回答)
    {
    控制台。WriteLine(“猜测较低”);
    }
    其他的
    {
    WriteLine(“你不会的!!\t{0}是正确的数字”,猜);
    打破
    i=6;
    }
    }
    控制台。写线(“你松了”);
    WriteLine(“答案是{0}”,答案);
    Console.ReadKey();
    
    您的代码有很多错误。我无法解释所有错误,但这是固定版本,仍然不完美,但它应该可以满足您的需要:

     int guess = 0, number;
     //Create an object of the Random class
     Random rnd = new Random();
     number  = rnd.Next(1, 11);
     for (int i = 0; i < 6; i++)
     {
         Console.Write("Enter Guess :");
         guess = Convert.ToInt32(Console.ReadLine());
         if (guess > number)
         {
              Console.WriteLine("Higher, try again");
         }
         else if (guess < number)
         {
              Console.WriteLine("Lower,  try again");
         }
         else
         {
             Console.WriteLine("You Won !!\t {0} is the correct number", guess);
             i = 6;
         }
         if (i == 5)
         {
              Console.WriteLine("You Loose");
         }
      }
      Console.ReadLine();
    
  • 在这一行中,您试图覆盖
    输入
    ,为什么

    input = guess;
    
  • 您正在将
    i
    number
    进行比较,这是错误的,因为您应该将用户的选择与随机数进行比较,并且输入仍然是字符串,您不能直接将整数与字符串进行比较

  • 在这一行中,
    answer
    是整数,您试图将其与
    字符串连接起来:

    answer += (Console.ReadLine() + " ");
    

  • 可能还有其他一些错误,但无论如何,如果您将代码与上述代码进行比较,您将看到所有这些错误的解决方案。

    您在哪里(在哪一行)得到了什么错误?我们无法看到和读取您的屏幕-您至少需要告诉我们!!我在哪里得到了错误,输入=转换为32(Console.ReadLine();input=guess;这部分是grand…
    如果(i==number){(i
    如果我等于number,那么我将永远不会大于或小于number lol。此代码需要的帮助不仅仅是修复错误。使用此代码时,会出现错误消息“输入字符串格式不正确”其中guess=convert.ToInt32(Console.Readline());when在program@user3341720这段代码对我来说编译得很好。这一行应该和他的完全一样,包括大写。@user3341720,如果您只需按回车键或输入数字以外的内容,您将得到“输入字符串的格式不正确"错误。这是因为
    Convert.ToInt32
    无法将该字符串转换为数字。@user3341720如果输入数字,则不会看到该错误消息。如果要忽略无效输入,请使用
    int.TryParse
    并检查返回结果。如果为真,则表示数字有效,否则表示数字无效。@David,如果我没有输入任何内容,那么我将收到“InputString…”错误消息
    answer += (Console.ReadLine() + " ");