面试题答案
一键面试- 预测输出结果:
- 输出为:
true 6 3 2
- 输出为:
- 操作符优先级及程序执行逻辑解释:
- 在Go语言中,逻辑运算符
&&
和||
的优先级低于比较运算符<
和>
。 - 首先计算
a < b
,这里a = 5
,b = 3
,所以a < b
为false
。 - 对于逻辑与
&&
,当左边表达式为false
时,右边表达式c++ > 1
不会被执行(短路求值),因为整个&&
表达式已经确定为false
。 - 接着计算逻辑或
||
,此时前面的a < b && c++ > 1
为false
,所以需要计算右边的a++ > b
。这里a++
是先使用a
的值进行比较,然后a
自增。a
初始值为5
,b
为3
,5 > 3
为true
,然后a
自增为6
。 - 由于
a < b && c++ > 1 || a++ > b
中a++ > b
为true
,所以整个表达式result
为true
。 - 最终
a
自增后为6
,b
保持为3
,c
因为c++
未执行仍为2
,所以输出true 6 3 2
。
- 在Go语言中,逻辑运算符