C# C使用“或”

C# C使用“或”,c#,C#,我想在这里说,如果userinput=1或2显示消息,您赢得了一辆新车,但它不起作用 错误是 运算符| |不能应用于类型和字符串的操作数 我做C只有两天了 namespace ConsoleApplication3 { class Program { static void Main(string[] args) { Console.WriteLine(" 1 2 or 3"); String mes

我想在这里说,如果userinput=1或2显示消息,您赢得了一辆新车,但它不起作用

错误是

运算符| |不能应用于类型和字符串的操作数

我做C只有两天了

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(" 1 2 or 3");
            String message = Console.ReadLine();
            string userinput = "";
            if (userinput == "1" || "2")
                message = "you won a new car";

恐怕不行!使用:

if(userinput == "1" || userinput == "2")

原因是if语句期望的结果是true或false。使用布尔运算符| |,两边的计算结果必须为true或false。在这种情况下,如果userinput为1,userinput==1将计算为true,否则将为false。独立2的计算结果不是真或假,而是2。

您的最后一行需要更改为:

if (userinput == "1" || userinput == "2") 
    message = "you won a new car";
由OR运算符分隔的语句的每个部分都需要能够计算为true或false。

您需要

if(userinput == "1" || userinput == "2")

诀窍在于,or表示一个二进制条件或另一个必须为true才能为true。它是布尔逻辑,而不是英语或列表

随后,您可以执行以下操作:

message = userinput != 3 ? "you won a new car" : "you lost a new car"
这是一个条件运算符表达式。

如果有多个值,也可以使用

例如,如果有10个值要使用或进行比较,则可以使用Array.IndexOf缩短代码

string[] array= new string[2];
array[0] = "1";
array[1] = "2";

if( Array.IndexOf(array, userInput) != -1) //-1 means it doesn't exist
{
   message = "you won a new car";
}

很抱歉,我正在尝试重新格式化它,这样你们就可以阅读它了。这是一个很容易通过谷歌C if语句或。你会很安全的。