C# “中复合布尔表达式的运算顺序是什么?”;如果;陈述

C# “中复合布尔表达式的运算顺序是什么?”;如果;陈述,c#,if-statement,boolean-expression,C#,If Statement,Boolean Expression,如果我有一个If语句 if (var1 || var2 && var3) { //anything } 它计算这些变量的顺序是什么 我想我真正想知道的是,这个if语句是否等同于 if ((var1 || var2) && var3){} //or if (var1 || (var2 && var3)){} 首先,秩序重要吗 我知道我可以用括号来澄清这一点,它会按照我期望的顺序对它们进行评估。但是我想知道在没有括号的情况下默认的查看方式。

如果我有一个If语句

if (var1 || var2 && var3)
{
    //anything
}
它计算这些变量的顺序是什么

我想我真正想知道的是,这个if语句是否等同于

if ((var1 || var2) && var3){}
//or
if (var1 || (var2 && var3)){}
首先,秩序重要吗


我知道我可以用括号来澄清这一点,它会按照我期望的顺序对它们进行评估。但是我想知道在没有括号的情况下默认的查看方式。

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

请查看链接,谢谢链接。因为| |和&&上有很多信息,所以很难找到。你可以用算术的方式来考虑它-
或者
+
<代码>和
*
。在这种情况下,
var1 | | var2和&var3
映射到
var1+var2*var3
,即
var1+(var2+var3)
。映射回布尔代数,就有了
var1 | |(var2&&var3)
。希望有道理。谢谢你的帮助。我认为这是一个正确的答案,但是所有的答案都来了又去,这对具体来说是一个奇迹,因为这会咬到你的屁股。是的,不是开玩笑。我认为这是你永远不用担心的事情之一,除非你真的担心。