【问题标题】:I'm trying to print all even numbers from 10 to 40 using just a while loop in Javascript我正在尝试使用 Javascript 中的 while 循环打印从 10 到 40 的所有偶数
【发布时间】:2020-02-04 17:09:45
【问题描述】:

我正在尝试使用 Javascript 中的 while 循环打印从 10 到 40 的所有偶数。但是当我在 Chrome 浏览器控制台中执行代码时,我只看到 10。这是我的代码:

var x = 10;

while (x !== 41 && x % 2 == 0){
  console.log(x)
  x++
}

【问题讨论】:

  • 循环在x % 2 == 0false 时立即停止,在您到达x !== 41false 的点之前。
  • 只是一个关于while循环的简短说明,严格相等的条件并不是最好的。 x !== 41 最好是 x < 41

标签: javascript while-loop


【解决方案1】:

随着 i 的增加,在第一次迭代时,i 的值变为 11(奇数),同时级别中断。可以增加 i 2,如下所示。

   i = 10
        while (i < 40) {
            i += 2;
            document.write("<br>",i);
            console.log(i)
        }

【讨论】:

  • 我最喜欢这个答案,但“i”需要从 8 开始才能满足他的要求。
  • 是的,我们需要开始 8
【解决方案2】:

当您将 x 递增 1 时,在第一次迭代时,x 的值变为 11(奇数)并且 while 条件被打破。您可以将 x 增加 2,如下所示。

var x = 10;
while (x <= 40){
    console.log(x);
    x += 2;
}

【讨论】:

    【解决方案3】:

    问题出在x % 2 == 0 部分。只要x 变为11,循环就会退出,因为该条件的计算结果为false。要继续循环,while() 括号内的两个条件都必须计算为 true,因为您正在使用 &amp;&amp; 运算符。

    您应该将该特定条件移动到循环内的 if 语句中,如下所示:

    var x = 10;
    while (x !== 41) {
      if (x % 2 == 0)
        console.log(x);
      x++;
    }

    上面的解决方案一直持续到x41 在这种情况下它将退出循环并且只运行console.log(x) 语句,如果x % 2 等于0x 是偶数) .

    我想给你的一个提示是养成使用=== 而不是== 的习惯。这将确保您的值是正确的类型(例如,x == 2true,而 x"2"x === 2 将返回 false,因为类型不同)并且可能会帮助您发现一些错误调试时。

    另一个提示是使用x &lt; 41 而不是x !== 41,它更常用,对大多数人来说更容易阅读。

    【讨论】:

    • 感谢您如此彻底地解释它并提供提示。我会确保暂时记住它们。 @Angelos Chalaris
    • @I_am_a_Noob 如果您发现一个答案(只有一个,我的或其他任何人的)比其他答案更有帮助和/或解决您的问题,请务必单击投票计数器下方的复选标记以标记它作为公认的答案。这将帮助未来的读者找到您问题的最佳答案。
    【解决方案4】:
    x = 10;
    while(x < 41) {
      if(x % 2 == 0) {
        console.log(x);
      }
      x++;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 2021-02-17
      • 1970-01-01
      • 2017-04-29
      相关资源
      最近更新 更多