c# - "if"语句中复合 bool 表达式的运算顺序是什么

标签 c# if-statement boolean-expression

如果我有一个 if 语句

if (var1 || var2 && var3)
{
    //anything
}

它评估这些变量的顺序是什么?

我想我真正想知道的是这个 if 语句是否相当于

if ((var1 || var2) && var3){}
//or
if (var1 || (var2 && var3)){}

首先顺序是否重要

我知道我可以用括号来澄清这一点,它会按照我期望的顺序评估它们。但我想知道当不存在括号时它们的默认查看方式。

最佳答案

来自docs , && 优先于 ||。建立优先级后,从左向右流动。因此,在您的示例中,最终结果为 if (var1 || (var2 && var3)){}

关于c# - "if"语句中复合 bool 表达式的运算顺序是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33743409/

相关文章:

c# - 如何从字符串中分离数据

Java:if、else if 和 else 算作一个语句吗?

java - 为什么 if block 不针对最终情况运行?

python - 函数 font_back - 错误

c++ - bool 表达式中带有 strlen() 的奇怪行为

cpu-architecture - 如何判断真值表是否有错误?

sql - 如何将简单的 bool 语句转换为 SQL?

c# - 了解模拟权限

c# - 对可移动 SD 卡的写入访问被拒绝

c# - 是否有理由在 c# 中使用 clausule 检查多个内部的 null?