用布尔数的数学表达式

时间:2012-12-18 07:03:11

标签: javascript math boolean expression

我们的导师在测验中给了我们以下一段代码,我不知道发生了什么。到目前为止没有听到她的回复,有人可以对它进行任何照明吗?到目前为止,我的编程研究中还没有看到这样的表达

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

3 个答案:

答案 0 :(得分:1)

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&gt; b&amp;&amp; c ++&gt; d;

因为a不大于b,Javascript不能解决第二部分(因为无论结果如何,e的结果都是假的)

所以第二个应该是7,顶部应该是8,给定你给它的值

http://jsfiddle.net/ZYVrH/1/作为示例

答案 1 :(得分:0)

  1. a&lt; b == true,javascript VM计算布尔表达式的下一部分并增加 c 变量。
  2. a&gt; b == false,javascript VM不计算下一部分,因为当逻辑表达式的第一个参数为false时,没有必要这样做。

答案 2 :(得分:0)

e = a&gt; b&amp;&amp; c ++&gt; d;

这样的条件 - (exp1&amp;&amp; exp2),当exp1导致false时,从不计算exp2。所以在上面的表达式中,你有一个&gt; b&amp;&amp; c ++&gt; d。因为a不大于b所以,即使有++运算符,c也不会递增。所以当你打印c时,它是7。

然而,e = a&lt; b&amp;&amp; c ++&gt; d;当a小于b时,计算前进到计算c ++&gt; d,结果c递增,其值为8.