一段骚代码 我没大意啊 翻车了
群友发的代码
正确答案是
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 (祈祷面试官不是什么魔鬼)
推荐文章: