我们的导师在测验中给了我们以下代码,我不知道发生了什么。到目前为止还没有收到她的回音,有人可以对此有所了解吗?到目前为止,我在编程学习中还没有见过这样的表达方式
var a = 3;
var b = 5;
var c = 7;
var d = 8;
var e;
e = a < b && c++ > d;
document.write(c);
答案是 7
e = a > b && c++ > d;
document.write(c);
答案是 8
我们的导师在测验中给了我们以下代码,我不知道发生了什么。到目前为止还没有收到她的回音,有人可以对此有所了解吗?到目前为止,我在编程学习中还没有见过这样的表达方式
var a = 3;
var b = 5;
var c = 7;
var d = 8;
var e;
e = a < b && c++ > d;
document.write(c);
答案是 7
e = a > b && c++ > d;
document.write(c);
答案是 8
var a = 3;
var b = 5;
var c = 7;
var d = 8;
var e;
e = a < b && c++ > d;
document.write(c);
重要的部分是 c=7
e = a < b && c++ > d;
这使得 c=8 (c++)
第二个 e = a > b && c++ > d;
因为 a 不大于 b,所以 Javascript 无法解决第二部分(因为无论其结果如何,e 的结果都是错误的)
所以第二个应该是 7 并且顶部应该是 8 给定你给它的值
e = a > b && c++ > d;
像这样的条件 - (exp1 && exp2),当 exp1 结果为假时,永远不会计算 exp2。所以在上面的表达式中,你有 a > b && c++ > d。由于 a 不大于 b 因此,即使有 ++ 运算符, c 也永远不会递增。所以当你打印 c 时,它是 7。
鉴于,e = a < b && c++ > d; 由于 a 小于 b,计算继续计算 c++ > d,结果 c 递增,其值为 8。