【问题标题】:Make a method that checks if the user input is equal to a random number [duplicate]制作一个检查用户输入是否等于随机数的方法[重复]
【发布时间】:2018-10-08 15:37:36
【问题描述】:

我有这个练习:

  1. 创建一个生成 1 到 100 之间的随机数的方法。

  2. 让用户猜一个 1 到 100 之间的数字。

  3. 创建一个方法来检查用户的猜测是否等于已生成的随机数。此方法还会说“更高”或“更低”,直到用户猜出随机数。

第 1 步和第 2 步没有问题,但第 3 步有问题。到目前为止,这是我的代码:

static void Main(string[] args)
{
    int randomNumber = GenerateRandomNumberMethod();
    Console.WriteLine("Guess a number between 1 and 100:");                
}

// generate random number method (step 2)   
public static int GenerateRandomNumberMethod()
{
    Random rdn = new Random();
    int random = rd.Next(1,100);
    return random;
}

//第3步(比较猜测数和随机数的方法)?

我希望这不是一个愚蠢的问题,答案可能很简单。

【问题讨论】:

  • 所以主要问题是你如何读取数字,用户输入到控制台。
  • 您需要在循环中使用Console.ReadLine() 接收用户输入并将该输入转换为数字;不要忘记用户可以输入非数字值
  • 您需要使用Console.ReadLine() 获取用户输入,使用int.TryParse 确保用户输入了一个整数,(并获取它),然后使用while loop 来获取重复这些步骤,类似于while (userNumber != randomNumber) { // Do stuff }
  • 到目前为止做得很好。您将需要使用一个循环来检查用户输入的条件与randomNumber。研究do/whileConsole.ReadLine

标签: c# random


【解决方案1】:

嗯,你要做的第一件事就是将生成的随机数存储在一个变量中,这样每次用户尝试后它都不会重新生成。

您要做的第二件事是创建一个方法,将用户输入与随机生成的数字进行比较,并返回一个值,指示用户输入是小于、等于还是大于生成的数字(A bool? 可能是一个不错的选择)。

您需要的第三件事是将用户输入的字符串转换为 int 的安全方法。
不要犯使用Convert.ToInt32 的常见错误 - 请改用int.TryParse。如果用户输入的是Zohar 而不是123,您不想抛出异常。

要做的第四件事是实现一个循环——它会不断地从用户那里获取输入,并告诉他们这个数字是太高还是太低。如果数字与生成的随机数相同,则退出循环。

最后要做的是告诉用户他们终于猜到了正确的数字并退出(或者可能重新启动)游戏。

既然这显然是一个家庭作业,我将把编码部分留给你处理,因为如果你至少不自己做,你不会学到任何东西,但至少现在你有一个计划。

【讨论】:

    【解决方案2】:

    试试

    int userGuess = int.Parse(Console.ReadLine());
    

    在阅读用户输入时查看此previous question

    请参阅previous question 了解您的确切问题。

    请参阅 cmets 以获取有关 int.Parse() 的注释

    【讨论】:

    • 我需要另一种方法,将用户输入与生成的数字进行比较。这个方法也得说高或低,直到用户猜到数字为止。
    • 永远不会int.Parse(Console.ReadLine());。如果用户输入任何无法解析为 int 的内容,您将收到异常。 总是在用户输入时更喜欢 TryParse 而不是 Parse
    • @Antonio - 比较这两个数字有什么问题?如果您发布一些您尝试过的事情的示例,我们可以更正它。另见这篇文章How do I ask and answer homework questions?
    猜你喜欢
    • 1970-01-01
    • 2014-02-27
    • 1970-01-01
    • 1970-01-01
    • 2020-04-30
    • 2017-10-04
    • 2013-05-31
    • 1970-01-01
    • 2018-04-20
    相关资源
    最近更新 更多