作者flydragon198 (Richard)
看板C_and_CPP
標題Re: [問題] 請教這段程式,在詳述什麼動作?
時間Mon Jun 25 22:17:57 2018
※ 引述《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是奇數或偶數來決定要執行哪一個
--
追求卓越,成功就會出其不意找上門。
Follow Excellence. Success will chase you.
Chase the excellence, success will follow you.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.233.243
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1529936282.A.941.html
1F:→ flydragon198: 話說,如果看到有人這樣寫,先尻他一拳....... 06/25 22:36
2F:→ y3k: 其實這寫法很基本 只是可以的話加個括號 06/26 00:00
3F:推 cphe: 這寫法算常見,尤其在if else只有一行情況或是要return不同 06/26 00:43
4F:→ cphe: 值更簡潔,複雜條件時括號括滿就好 06/26 00:43
5F:推 s9041200: 要寫也寫成 x += i%2 ? 1 : 2 也比較好吧 06/26 00:57
6F:推 Schottky: 同意樓上。還有括號真的不需要省著用。 06/26 02:17
7F:推 FrozenMoment: 推s大,原來的寫法個人覺得蠻差的 06/26 07:45
8F:→ PkmX: x += 2 - i%2; (╯°□°)╯︵ ┴━┴ 06/26 10:48
9F:推 shadow0326: x += (2 >> i%2); (╯°□°)╯︵ ┴━┴ 06/26 14:32
10F:推 jerryh001: x-=-(x&2? x%2==1 : 2) (╯°□°)╯︵ ┴━┴ 06/26 15:38
11F:→ jerryh001: x-=-(x&1? x%2==1 : 2) (╯°□°)╯︵ ┴━┴ 06/26 15:39
12F:→ jerryh001: 應該這樣才對 06/26 15:39
13F:→ PkmX: 樓上你的i呢? 06/26 15:43
14F:推 jerryh001: x-=-(i&1? i%2==1 : 2) (╯°□°)╯︵ ┴━┴ 06/26 15:45
15F:→ jerryh001: 再翻一次桌 (╯°□°)╯︵ ┴━┴ 06/26 15:46
16F:推 stupid0319: x += (2 >> (i&1)) 06/26 19:46
17F:→ PkmX: x += (1 << (~i&1)) (喂 06/27 11:53
18F:→ sarafciel: 我只是來翻桌的 (╯°□°)╯︵ ┴━┴ 06/27 12:27