Re: [問題] 請教這段程式,在詳述什麼動作?

作者: flydragon198 (Richard)   2018-06-25 22:17:57
※ 引述《jenho001 (清香小白蓮)》之銘言:
: i % 2 ? x = x + 1 : x = x + 2
: 請大俠們解惑
: 我真看不懂它在講什麼>"<
※ 引述《jenho001 (清香小白蓮)》之銘言:
: i % 2 ? x = x + 1 : x = x + 2
: 請大俠們解惑
: 我真看不懂它在講什麼>"<
程式有一個寫法
A ? B : C
意思是A如果成立(true),就執行B,要不然就執行C
把這個程式分成兩部分來看就比較容易了
i%2 ? x=x+1 : x=x+2
i%2是否為true,如果成立就執行x=x+1,否則執行 x=x+2
i%2 的結果不是0就是1
所以就會等於看i是奇數或偶數來決定要執行哪一個
作者: flydragon198 (Richard)   2018-06-25 22:36:00
話說,如果看到有人這樣寫,先尻他一拳.......
作者: y3k (激流を制するは静水)   2018-06-26 00:00:00
其實這寫法很基本 只是可以的話加個括號
作者: cphe (魔鬼藏在垃圾筒裡)   2018-06-26 00:43:00
這寫法算常見,尤其在if else只有一行情況或是要return不同值更簡潔,複雜條件時括號括滿就好
作者: s9041200 (小明阿)   2018-06-26 00:57:00
要寫也寫成 x += i%2 ? 1 : 2 也比較好吧
作者: Schottky (順風相送)   2018-06-26 02:17:00
同意樓上。還有括號真的不需要省著用。
作者: FrozenMoment   2018-06-26 07:45:00
推s大,原來的寫法個人覺得蠻差的
作者: PkmX (阿貓)   2018-06-26 10:48:00
x += 2 - i%2; (╯°□°)╯︵ ┴━┴
作者: shadow0326 (非議)   2018-06-26 14:32:00
x += (2 >> i%2); (╯°□°)╯︵ ┴━┴
作者: jerryh001   2018-06-26 15:38:00
x-=-(x&2? x%2==1 : 2) (╯°□°)╯︵ ┴━┴x-=-(x&1? x%2==1 : 2) (╯°□°)╯︵ ┴━┴應該這樣才對
作者: PkmX (阿貓)   2018-06-26 15:43:00
樓上你的i呢?
作者: jerryh001   2018-06-26 15:45:00
x-=-(i&1? i%2==1 : 2) (╯°□°)╯︵ ┴━┴再翻一次桌 (╯°□°)╯︵ ┴━┴
作者: stupid0319 (徵女友)   2018-06-26 19:46:00
x += (2 >> (i&1))
作者: PkmX (阿貓)   2018-06-27 11:53:00
x += (1 << (~i&1)) (喂
作者: sarafciel (Cattuz)   2018-06-27 12:27:00
我只是來翻桌的 (╯°□°)╯︵ ┴━┴

Links booklink

Contact Us: admin [ a t ] ucptt.com