三目运算符

这个题最后输出的是什么?求步骤
2024-11-28 13:39:42
推荐回答(1个)
回答1:

.....先手抄一边题目:

var a=2;

var b=1;

true?a++<1?++b:++a>b++?++b:++a:false

嵌套的三目运算要"从前往后算 从后往前"

第一步  最后一个分号 和 第一个问号和之间的部分是个表达式 ,括起来。

true?(a++<1?++b:++a>b++?++b:++a):false

第二步 看加粗部分。问号前边必须是布尔表达式,所以>b++前面的部分是一个表达式,括起来,如下:

true?((a++<1?++b:++a)>b++?++b:++a):false

计算过程:

就是计算表达式((a++<1?++b:++a)>b++?++b:++a),也就是计算(a++<1?++b:++a)>b++的真假,从而判断最终取++b 还是++a的值

  1. 计算a++<1,为false,此时a=3

  2. 计算++a,即(a++<1?++b:++a)=++a=4,此时a=4

  3. 计算4>b++, 4>1为true,即 (a++<1?++b:++a)>b++为true,此时b=2

  4. 所以最终取表达式++b的值 为3