[问题] 请教这段程式,在详述什么动作?

楼主: jenho001 (清香小白莲)   2018-06-25 12:38:46
i % 2 ? x = x + 1 : x = x + 2
请大侠们解惑
我真看不懂它在讲什么>"<
作者: sarafciel (Cattuz)   2018-06-25 12:42:00
i是奇数的话x+1,i是偶数的话x+2
作者: Killercat (杀人猫™)   2018-06-25 12:43:00
i是2的倍数的话 x=x+1 否则x=x+2 加个括号很好懂(i%2) ? (x=x+1) : (x=x+2)阿我打反 sarafciel的是对的
作者: james732 (好人超)   2018-06-25 13:21:00
if (i % 2 != 0) x = x + 1; else x = x + 2;
作者: wei115 (ㄎㄎ)   2018-06-25 14:19:00
三元运算子
作者: stupid0319 (征女友)   2018-06-25 16:51:00
x += (2 - i&1)
作者: yvb   2018-06-25 17:50:00
^^^ 要加括号, 不然 - 优先于 & ...而且, ?: 似乎优先于 = 所以要照 3F 写法, 不然编译时会错吧?刚试了一下, x = x + 2 要括, 不过 x = x + 1 可以不括.
作者: cphe (魔鬼藏在垃圾筒里)   2018-06-25 20:24:00
优先权太容易乱,刮好刮满人生会省很多力气
作者: d630200x (DOGE)   2018-06-25 21:16:00
请问一下,为何i%2会等价i%2!=0?我以为会是i%2==0
作者: jerryh001   2018-06-25 21:49:00
i为奇数 -> i%2为1 1为true
作者: sarafciel (Cattuz)   2018-06-25 22:33:00
y大一讲我才想起来好像被这个case雷过....括好括满+1
作者: Sex5F (HTC)   2018-06-25 23:49:00
会考这种问题的公司很雷吧基本上就不会让他check in了
作者: y3k (激流を制するは静水)   2018-06-25 23:58:00
这个就是考问号而已啊@@
作者: sarafciel (Cattuz)   2018-06-26 00:06:00
如果真的照原PO写的不括,那就是在考算子优先权了XD恶意的点在于三元运算子优先权算很后面了而且实务上两个括号就能解决的事拿来考实在很没意义
作者: loveflames (咕啾咕啾魔法阵)   2018-06-27 10:40:00
如果这是学校考题就算了,如果这是面试题,那你最好别去这种公司,因为去钻运算子优先权是非常没营养的事不要浪费时间研究这个对你比较好
作者: Schottky (顺风相送)   2018-06-27 12:37:00
非常同意楼上
作者: Neisseria (Neisseria)   2018-06-27 23:27:00
同意楼楼上
作者: cphe (魔鬼藏在垃圾筒里)   2018-06-28 14:26:00
偏偏很多公司很爱出这种题目,考的不是观念,而是记忆力说实在是蛮无聊的
作者: yzfr6 (扮关二哥!)   2018-07-02 23:55:00
纯学术派的写法 or 卖弄式写法

Links booklink

Contact Us: admin [ a t ] ucptt.com