所以这是我自己学习的第二天,我确信这是一个非常初级的问题,但是我用类型或尝试解析来查找我发现的东西,但我似乎不知道如何使用它们。我可能不应该在这个学习阶段尝试这个,但我想无论如何我还是会问,因为我真的想知道如何去做。我正在学习一个教程,但是如果用户输入不是数字的话,它就不包括在内了。这是我的基本计算器:
using System;
namespace Tutorials
{
class Program
{
static void Main(string[] args)
{
string opError = "Invalid Operator";
string numError = "Enter a valid number";
Console.Write("Enter a number: ");
double num1 = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter Operator: ");
string op = Console.ReadLine();
Console.Write("Enter a number: ");
double num2 = Convert.ToDouble(Console.ReadLine());
if (op == "+")
{
Console.WriteLine(num1 + num2);
}
else if (op == "-")
{
Console.WriteLine(num1 - num2);
}
else if (op == "/")
{
Console.WriteLine(num1 / num2);
}
else if (op == "*")
{
Console.WriteLine(num1 * num2);
}
else
{
Console.WriteLine(opError);
}
Console.ReadLine();
}
}
}我希望能够检查num1和num2的用户输入是否是一个数字,如果不是,我希望它显示我为numError设置的消息。现在if和the语句对我来说是有意义的,因为我知道正在使用的操作符。当涉及到用户输入时,这可能是任何东西。这就是我不知道该怎么做的地方。我读过关于类型和尝试解析的文章,但我不太明白如何在这段代码中使用它。我尝试过尝试解析,但是一旦输入了一个数字,它就什么也不做了,所以我假设我需要一个if语句,而我在开始的时候还知道如何去做。用我的代码做这件事最好的方法是什么?我看到有更好的方法来做这个计算器,我看过一些例子,但是我正在尝试用我现在的方式来理解它。
发布于 2021-01-15 00:23:15
只需用这个代替:
string c = Console.ReadLine();
int value;
if (int.TryParse(c, out value))
{ /* some code here */ }https://stackoverflow.com/questions/65728519
复制相似问题