我是编码的新手,所以这可能不是做事情的最佳方法。我只是在编写代码以适应它并更好地理解它。我试图制作一个可以在Visual Studios cmd中运行的计算器。我正在尝试收集用户输入的数据,看看它是“ +”,“-”,“ *”还是“ /”,如果是,则应该继续,但是如果不是,则他们应该收到一条消息并重试(i尚未编写代码的这一部分)。我制作了一个数组“ +,-,*和/”,并试图告诉if语句,如果它不等于这些值,则应显示该消息以重试,但是它给了我一个错误,说您可以不要为字符串值分配!=。
double user_Input;
string user_inputOperation;
double user_secondInput;
double answer;
string[] operations = { "+", "-", "*", "/" };
Console.WriteLine("Type in a number: " );
user_Input = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Type an operation(+, -, *, /): ");
user_inputOperation = Console.ReadLine();
if (user_inputOperation != operations) // problem occurs here
{
Console.WriteLine("That's not right, try: +, -, *, or /");
user_inputOperation = Console.ReadLine();
}
Console.WriteLine("Type in another number");
user_secondInput = Convert.ToDouble(Console.ReadLine());
if (user_inputOperation == "+")
{
answer = user_Input + user_secondInput;
Console.WriteLine("The answer is: ");
Console.WriteLine(answer);
}
Console.ReadKey();
}
}
}
答案 0 :(得分:3)
您需要用array.contains代替!=
if (!operations.Contains(user_inputOperation)
{
Console.WriteLine("That's not right, try: +, -, *, or /");
user_inputOperation = Console.ReadLine();
}
答案 1 :(得分:1)
您还可以通过操作将数组类型更改为字符串类型,并对该字符串使用IndexOf方法:
string operations = "+-*/";
while(operations.IndexOf(user_inputOperation) < 0)
{
Console.WriteLine("That's not right, try: +, -, *, or /");
user_inputOperation = Console.ReadLine();
}
如果找不到字符串,IndexOf将返回-1
答案 2 :(得分:0)
您也可以使用Linq:
if (operations.Any(x => x.Equals(user_inputOperation.Trim())))
{ }