如何将!=与if语句内的字符串数组一起使用?

时间:2018-11-05 02:14:43

标签: c# arrays string if-statement

我是编码的新手,所以这可能不是做事情的最佳方法。我只是在编写代码以适应它并更好地理解它。我试图制作一个可以在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();
    }
}

}

3 个答案:

答案 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()))) 
{ }