作者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/cn.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