首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我正在尝试使用Javascript中的while循环来打印从10到40的所有偶数

我正在尝试使用Javascript中的while循环来打印从10到40的所有偶数
EN

Stack Overflow用户
提问于 2019-10-07 19:48:58
回答 4查看 3.2K关注 0票数 1

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

代码语言:javascript
复制
var x = 10;

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

回答 4

Stack Overflow用户

发布于 2019-10-07 19:52:21

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

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

代码语言:javascript
复制
var x = 10;
while (x !== 41) {
  if (x % 2 == 0)
    console.log(x);
  x++;
}

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

我想给你的一个建议是,养成使用===而不是==的习惯。这将确保您的值是正确的类型(例如,当x"2"时,x == 2true,但由于类型不同,x === 2将返回false ),并可能帮助您在调试时捕获一些错误。

另一个建议是使用x < 41而不是x !== 41,它更常用,对大多数人来说也更容易阅读。

票数 3
EN

Stack Overflow用户

发布于 2019-10-07 20:01:25

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

代码语言:javascript
复制
var x = 10;
while (x <= 40){
    console.log(x);
    x += 2;
}

票数 3
EN

Stack Overflow用户

发布于 2019-10-07 19:52:21

代码语言:javascript
复制
x = 10;
while(x < 41) {
  if(x % 2 == 0) {
    console.log(x);
  }
  x++;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58268976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档