【问题标题】:how to prompt the user to input the number between 1 to 20如何提示用户输入 1 到 20 之间的数字
【发布时间】:2020-06-04 09:28:40
【问题描述】:

如何提示用户输入 1 到 20 之间的数字。如果用户输入的是字符串而不是数字,那么它应该会显示一个错误,说明它是无效的,并且应该在 c# 中输入一个有效的数字。 当用户输入字符串而不是数字时,这会引发异常。

    private static int number_of_participants()
    {          
        int tmp;
        int num;

        Console.WriteLine("enter no of students");
        num = Convert.ToInt32(Console.ReadLine());

        if (num < 1 || num > 20)
        {
            Console.WriteLine("this is not number. enter valid num");
            num = Convert.ToInt32(Console.ReadLine());
        }
        else if (int.TryParse(Console.ReadLine(), out tmp))
        {
            Console.WriteLine("Enter no of students between 1 t0 20: ");
            tmp = Convert.ToInt32(Console.ReadLine());

        }

        Console.WriteLine("Invalid: enter number of students");
        num = Convert.ToInt32(Console.ReadLine());

        return num;
    }

【问题讨论】:

  • 看看你是如何使用int.TryParse的?您应该使用 everywhere 而不是 Convert.ToInt32
  • 这样做会抛出“无法将类型 bool 隐式转换为 int”的错误
  • 如果不能确认输入的字符串是有效数字,可以试试这个方法int.TryParse(string s, out int result)。如果输入字符串是有效数字,它返回 true 并在结果上为您提供数字,否则返回 false。

标签: c# methods tryparse


【解决方案1】:

你可以使用:

int num = Int32.Parse(Console.readLine());

int num = 0
Int32.TryParse(Console.readLine(), out x);

Int32.TryParse 返回一个布尔值,因此您可以检查用户是否输入了数字,然后检查它是否在范围内。

您可以在MSDN 中找到有关 Int.TryParse 的更多信息

【讨论】:

    【解决方案2】:

    试试这个

    private static int number_of_participants()
            {
                int num;
                while (true)
                {
                    Console.WriteLine("enter no of students");
                    string input = Console.ReadLine();
    
                    if (int.TryParse(input, out num))
                    {
                        if (num >= 1 && num <= 20)
                            return num;
                        else
                            Console.WriteLine("Number must be between 1-20.");
                    }
                    else
                        Console.WriteLine("this is not number. enter valid num");
                }
                return 0;
            }
    

    编辑:我将添加一些解释。

    首先将输入始终作为字符串读取,因为您不知道用户是否会输入整数,然后基本上将此字符串放入int.TryParse 方法。此方法的作用是尝试将您的输入转换为有效整数,如果它返回 true,这意味着您的输入是有效整数并且您可以继续。我所做的是,如果此方法返回 false,我输入“这不是数字”,因为我知道如果 TryParse 方法返回 true,这不能是数字,那么我只需检查数字是否在 1-20 之间,如果不是我输入我的信息。如果输入是数字并且在 1-20 之间,我会从名为“number_of_participants”的方法中返回数字

    【讨论】:

    • 不客气,如果您找到问题的解决方案,请接受我的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 2022-06-13
    • 2017-10-18
    • 1970-01-01
    • 2016-07-18
    • 2018-05-14
    相关资源
    最近更新 更多