或与整数

OR with integers

有没有办法使用 if 语句来检查一个整数是否等于另一个整数?下面的代码给出了一个错误,指出 || OR 运算符不能用于 int 和 int 类型。有没有比让每个选项成为单独的 IF 语句更好的解决方法?

if (role = 7 || 11)
{
    Console.WriteLine("You won!");
}

if (role = 2 || 3 || 12)
{
    Console.WriteLine("You lost.");
}

If 语句要求您计算布尔值。因此,您需要更改 if 语句的后半部分以评估为布尔值:

if (role == 7 || role == 11)

请注意,我将 = 更改为 ==,因为 = 是赋值,而 == 是比较。

您必须使用 or 变量,即

if(role == 7 || role == 11) {
//do something
}

或者...

if (new[] {2, 3, 12}.Contains(role)) {

}

重要的是 if 括号中的表达式计算为布尔值。

您使用的 = 是赋值,而 == 是比较。 你的陈述需要比较,那么它应该是:

if (role == 7 || role == 11)

在其他情况下,您可以使用列表来检查:

if (new List<int> { 2, 3, 12 }.Contains(role))
{

}

或者您可以改为使用 switch 语句:

            switch (role)
            {
                case 7:
                case 11:
                    Console.WriteLine("You won!");
                    break;
                case 2:
                case 3:
                case 12:
                    Console.WriteLine("You lost.");
                    break;
            }