Каков порядок операций для составных булевых выражений в операторе if


Если у меня есть оператор if

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

В каком порядке он оценивает эти переменные?

Я думаю, что на самом деле я хотел бы знать, будет ли это утверждение эквивалентно

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

И имеет ли порядок значение в первую очередь

Я понимаю, что мог бы уточнить это с помощью скобок, и он оценил бы их в порядке, который я ожидаю. Но мне было интересно, как они рассматриваются по умолчанию, когда нет скобок.

1 2

1 ответ:

Из документов , && имеет приоритет над ||. После установления приоритета он течет слева направо. Итак, в вашем примере это заканчивается тем, что если (var1 || (var2 && var3)){}.