我有一个简单的控制台应用程序,我希望该用途只能输入数字。这是代码
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();
}
}
}
答案 0 :(得分:3)
这应该可以解决问题。
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
答案 1 :(得分:2)
您的投注选项为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");
}
答案 2 :(得分:1)
你应该使用&#34; TryParse&#34;而不是&#34; Parse&#34;并使用&#34;做{...} while&#34;循环,所以你不必重复丑陋的代码。
注意我已经添加了一个字符串变量来处理用户输入。此代码将一次又一次地询问转换次数,直到输入有效数字。然后它会执行你剩下的代码。
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();
}
}