[請益] C語言最後輸出請教...

作者: dealdream (夢想執行家)   2017-07-27 21:11:40
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呢?
作者: manlike ( )   2017-07-27 21:14:00
因為後if ||前面是true後面就不會再執行的了shortcut logical operator
作者: AMG6000   2017-07-27 21:15:00
捷徑運算 後面不執行
作者: dealdream (夢想執行家)   2017-07-27 21:18:00
哦喔 原來如此!! 只要有一個是true,後面不管接幾個都不會執行嗎?多謝m大,A大 !
作者: pt7441 (批踢)   2017-07-27 22:31:00
捷徑運算
作者: jachin (火腿哥)   2017-07-27 23:25:00
注意c,C++,Java都是捷徑運算,但Ada預設and, or都是完全運算
作者: dealdream (夢想執行家)   2017-07-27 23:50:00
yes,sir !
作者: williamsm (Roger)   2017-07-28 11:33:00
你可以比較一下 || 跟&&

Links booklink

Contact Us: admin [ a t ] ucptt.com