Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I'm 99% sure this won't work but that remaining 1% is bothering me

    int x;

    //is this if statement

    if(x == 1, 5, 7)
    {
    //do something here
    }
    //equivalent to this if statement

    if((x == 1) || (x == 5) || (x == 7))
    {
    //do something here
    }
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
235 views
Welcome To Ask or Share your Answers For Others

1 Answer

No it's totally not equivalent.

if(x == 1, 5, 7)

calls the comma operator, which will effectively end up in the last value because of , has the lowest precedence:

if(7)

since unfolding with parenthesis should look like

if(((x == 1), 5), 7)

while

if((x == 1) || (x == 2) || (x == 7))

checks if x equals either 1, 2 or 7.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...