avatar

Catalog
一段骚代码 我没大意啊 翻车了

群友发的语言代码

https://cdn.lblog.club/cdn/images/c_com.png

正确答案是

Code
1
2
3
4
x = 2 
y = 1
z = 1
t = 1

优先级: (你们肯定不想百度了 我发出来吧)

优先级排名 运算符 结合方向
1 ++ (前置) 右到左
11 && 左到右
12 || 左到右

第一次理解

https://cdn.lblog.club/cdn/images/first_com_.png

Code
1
2
3
4
5
6
7
8
9
10
11
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
// 没毛病吧 哈哈。

第二次

https://cdn.lblog.club/cdn/images/two_fe.png

(这是正确的)

严格的说: 先执行 ++ 再执行 && 和 || 才对啊,优先级让我懵逼。

问老师

https://cdn.lblog.club/cdn/images/bai_.png

https://cdn.lblog.club/cdn/images/baidu_answer.png

得到了满意的答案。
公式其实变成了:
t = (++x) || (++y && ++z)

先分界了,再按优先级执行的。

面试题 +1 (祈祷面试官不是什么魔鬼)

Author: xxh
Link: http://lblog.club/2020/12/16/com/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment