Does && has higher precedence than || in if?

3 Ansichten (letzte 30 Tage)
Iila
Iila am 15 Jan. 2016
Kommentiert: the cyclist am 15 Jan. 2016
Recently I used:
if p==0&&q==0&&r==0||p==0&&q==0||q==0&&r==0||p==0&&r==0
if p>=0&&q>=0&&r>=0||p<=0&&q<=0&&r<=0
if a>0&&b>0&&c>0||d>0&&e>0&&f>0
if g>0&&h>0
whereas I actually mean:
if (p==0&&q==0&&r==0)||(p==0&&q==0)||(q==0&&r==0)||(p==0&&r==0)
if (p>=0&&q>=0&&r>=0)||(p<=0&&q<=0&&r<=0)
if (a>0&&b>0&&c>0)||(d>0&&e>0&&f>0)
if (g>0&&h>0)
The problem is I have done months of calculations without brackets, thingking && has higher precedence than . Now I just reflected: is it true? Was my code right?
Please tell me if my code was correct without brackets or not before I publish my calculation results. This is a serious matter to me if not; I'm really worried.
P.S. I'm aware of short circuits.
  3 Kommentare
Guillaume
Guillaume am 15 Jan. 2016
It is also trivial to check for yourself:
0 && 0 || 1
If it returns 1, it means it's been evaluated as
(0 && 0) || 1
If it returns 0, it's been evaluated as
0 && (0 || 1)
the cyclist
the cyclist am 15 Jan. 2016
This test does not distinguish between the following two rules:
  • && has precedence over ||
  • && and || have equal precedence, with left-to-right evaluation

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

the cyclist
the cyclist am 15 Jan. 2016
According to this page about order precedence, && does indeed have precedence over ||.

Weitere Antworten (0)

Kategorien

Mehr zu Creating and Concatenating Matrices finden Sie in Help Center und File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by