首页 > 解决方案 > 如何要求用户只输入整数?

问题描述

我想要求用户输入一个数字,包括一个 if 语句选项,如果他输入字母,最后一个问题将再次被问到我试过这个但似乎它只适用于字符串

        Console.Write("Write a number:");
        int num = Convert.ToInt32(Console.ReadLine());

        if (!int.TryParse(age, out num))
            while(!int.TryParse(age, out num))
            {
             Console.WriteLine(...);
             // ....
            }

标签: c#if-statementinteger

解决方案


让我们为此提取方法:我们将要求用户输入有效值,直到他或她提供它。所以我们有一个循环

   private static int ReadInteger(string question) {
     // Keep asking...
     while (true) {
       if (!string.IsNullOrWhiteSpace(question))
         Console.WriteLine(question);

       // ... until valid value provided
       if (int.TryParse(Console.ReadLine(), out int result))
         return result;

       Console.WriteLine($"Sorry, not a valid integer value; please, try again."); 
     }
   }

然后您可以将其用作

   int age = ReadInteger("Please, input age");

推荐阅读