int a=0 , b=0; if( ((a=1)>b || ((b=2)>a)) { a+=10; b+=10; } printf("%d,%d",a,b); 答案: 11,10 既然a都11了, 為什麼b不會是12呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.236.212 ※ 文章網址: https://webptt.com/m.aspx?n=bbs/Examination/M.1501161102.A.AFE.html
1F:→ manlike: 因為後if ||前面是true後面就不會再執行的了 07/27 21:14
2F:→ manlike: shortcut logical operator 07/27 21:15
3F:→ AMG6000: 捷徑運算 後面不執行 07/27 21:15
4F:→ dealdream: 哦喔 原來如此!! 只要有一個是true,後面不管接幾個都 07/27 21:18
5F:→ dealdream: 不會執行嗎? 07/27 21:18
6F:→ dealdream: 多謝m大,A大 ! 07/27 21:18