将布尔值转换为整数

本文关键字:整数 转换 布尔值 | 更新日期: 2023-09-27 18:32:05

我有这段代码,但我不明白为什么我不能在这个例子中使用运算符||

"运算符 '||' 不能应用于类型为 'bool' 和 'int' 的操作数"

我错过了什么吗?这个布尔值在哪里?

int i = 1;                            
if ( i == 1)
{
    Response.Write("-3");
}
else if (i == 5 || 3) //this is the error, but where is the bool?
{
    Response.Write("-2");
}

将布尔值转换为整数

您需要将 x 与 y 和/或 x 与 z

进行比较,大多数语言都不允许将 x 与 (y 或 z) 进行比较。布尔值是在添加整数"3"时引入的。 编译器认为你想要 (i == 5) ||(3) 这不起作用,因为 3 不会自动转换为 bool(也许在 JavaScript 中除外)。

int i = 1;                            
        if ( i == 1)
        {
            Response.Write("-3");
        }

        else if (i == 5 || i == 3) //this is the error, but where is the bool?
        {
            Response.Write("-2");
        }

您也可以使用 switch-statement。案例 3 和 5 相同

int i = 1;
        switch (i)
        {
            case 1:
                Response.Write("-3");
                break;
            case 3:
            case 5:
                Response.Write("-2");
                break;
        }

希望这有帮助

您收到错误的原因是因为您尝试对未解析为布尔方程的某些内容执行布尔计算:

if (false || 3)

这里 '3' 不计算布尔方程。

如果要将其更改为

if (false || 3 == 3)

然后你会发现它会起作用。