如何在控制台应用程序中输入数字c#

问题描述:

我有一个简单的控制台应用程序,我希望使用者只能输入数字。这里的代码如何在控制台应用程序中输入数字c#

namespace ConsoleApplication3 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
     int n, sum; 
     sum = 5000; 
     Console.WriteLine("enter number of conversations"); 
     n = int.Parse(Console.ReadLine()); 
     if (n <= 100) 
     { 
      sum = sum + n * 5; 
     } 
     else 
     { 
      sum += (100 * 5) + (n - 100) * 7; 
     } 
     Console.WriteLine(sum); 
     Console.ReadKey(); 
     } 
    } 
} 
+1

那么问题是什么? – Idos

这应该做的伎俩。在这种情况下,你

Console.Write("enter number of conversations "); 
int n; 

while(!int.TryParse(Console.ReadLine(), out n) 
{ 
    Console.Clear(); 
    Console.WriteLine("You entered an invalid number"); 
    Console.Write("enter number of conversations "); 
} 

if(n <= 100) 
    //continue here 

投注选项int.TryParse而不是为int.Parse()它可以帮助你确定无效输入。你可以实现以下逻辑来使其工作;

Console.WriteLine("enter number of conversations"); 
if(int.TryParse(Console.ReadLine(), out n) 
{ 
    if (n <= 100) 
    { 
     sum = sum + n * 5; 
    } 
    else 
    { 
     sum += (100 * 5) + (n - 100) * 7; 
    } 
    Console.WriteLine(sum); 
} 
else 
{ 
    Console.WriteLine("Invalid input , Enter only number"); 
} 

您应该使用,而不是“解析”和使用“的TryParse”梅索德一个“做{...} while”循环,这样你就不必再重复丑陋的代码。

注意我已经添加了一个字符串变量来处理用户输入。此代码会一次又一次地询问转换次数,直到输入有效数字。然后它会执行你的其他代码。

class Program 
{ 
    static void Main(string[] args) 
    { 
     int n, sum; 
     string input; 
     sum = 5000; 

     do 
     { 
      Console.WriteLine("enter number of conversations"); 
      input = Console.ReadLine(); 
     } while (int.TryParse(input, out n) == false); 

     if (n <= 100) 
     { 
      sum = sum + n * 5; 
     } 
     else 
     { 
      sum += (100 * 5) + (n - 100) * 7; 
     } 
     Console.WriteLine(sum); 
     Console.ReadKey(); 
    } 
}