一段骚代码 我没大意啊 翻车了
群友发的代码

正确答案是
x = 2
y = 1
z = 1
t = 1
优先级: (你们肯定不想百度了 我发出来吧)
| 优先级排名 | 运算符 | 结合方向 |
|---|---|---|
| 1 | ++ (前置) | 右到左 |
| 11 | && | 左到右 |
| 12 | || | 左到右 |
第一次理解
t = ++x || ++y && ++z
t = 2 || 2 && 2
// 第一步 x = 2; y = 2; z =2;
// 第二步: 2 || 2 = 1
// 第三步: 1 && 2 = 1
// 第四步: t = 1
x = 2
y = 2
z = 2
t = 1
// 没毛病吧 哈哈。
第二次

(这是正确的)
严格的说: 先执行 ++ 再执行 && 和 || 才对啊,优先级让我懵逼。
问老师


得到了满意的答案。
公式其实变成了:t = (++x) || (++y && ++z)
先分界了,再按优先级执行的。
面试题 +1 (祈祷面试官不是什么魔鬼)
关于 LearnKu
高认可度评论:
讲道理,工作中这么写的,全都打死
我学废了 :joy:
讲真,如果是我之前遇到这样的面试,我就转身离开回去后我还会反思自己为什么会遇到这样的面试。
现在嘛,只要工资够高,你问我茴香豆有几种写法都行。
最近看到了一个关于程序员相关的一个国际比赛IOCCC(国际C语言混乱代码大赛),不得不说语法我都懂,但一行我都看不懂。这个题目和那些题都挺有意思的。
讲道理,工作中这么写的,全都打死
唉?我竟然做对了。貌似在学校考试时有过类似的题,当时还挺反感的。
||会导致短路多加几个括号的事,多写几行代码,少死几个脑细胞。 还有我只用:i+=1,i-=1;谁要是问我i++与++i的区别,我都不理他
t应该等于true吧,||的结果 应该只有true和false嗯,|| 前面 true 了后面的不执行,是这样的
很多人都在想为什么要搞这种无聊的脑筋急转弯,算法题可以理解,考各种语法混到一起之后的运行结果,感觉真的是。一两道无所谓,面试遇到满卷子这种的转身就撤了,面试题考这种的公司也不会好到哪里去。纯属吐槽,这种题自己闲来做还是挺有意思的。
这和钓鱼执法是一样的。。。程序员这样写不被喷死
&& 和 and 优先级都不一样
前年做面试题经常遇到这个问题,当时也是这个问题,其实就运算符优先级;
||条件为真时不下面的逻辑不会走,先加加会返回,后加加不会返回;
可以试下
@Epona 哈哈,还是要遵循 KISS 原则嘛
想加群。。。 :joy:
@L学习不停 codewar 上面也都是写这种代码的人才