为什么!== 0返回值等于0而不是等于0?

时间:2016-03-30 20:43:14

标签: javascript

我有以下一些代码,用于返回13和13之间的值。 -13不要加起来0.以下是有问题的javascript(我在下面包含了完整的JsFiddle):

$(document).ready(function() {
  function GenerateRandomNumber() {
    var min = -13,
      max = 13;
    var random = Math.floor(Math.random() * (max - min + 1)) + min;
    return random;
  }
  var x = GenerateRandomNumber();

  function GenerateRandomNumber2() {
    var min2 = -13,
      max2 = 13;
    var random2;
    while ((random2 + x) !== 0) {
      random2 = Math.floor(Math.random() * (max2 - min2 + 1)) + min2;
    }
    return random2;
  }
  var xx = GenerateRandomNumber2();
  $('#x').html(x);
  $('#xx').html(xx);
  $('#y').html(sum);
});

JsFiddle:http://jsfiddle.net/vL77hjp0/

然而,它似乎是返回等于0的值。我无法弄清楚为什么“!==”与我打算做的相反。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

你的while循环将继续尝试在值不为0时查找值。当你得到的值不是总和为0然后继续。

答案 1 :(得分:0)

Random2开始时等于零,因为您没有将其设置为具有值 然后检查它是否不为零。它是零,所以没有任何反应。 然后你返回Random2,它仍然为零。

答案 2 :(得分:0)

您应该将“while”更改为“do while”,因为您需要先生成一个随机数,然后检查总和是否为零。因此,我也改变了条件。

do {
    random2 = Math.floor(Math.random() * (max2 - min2)) + min2;
} while ((random2 + x) === 0)