我正在尝试使用Javascript中的while循环来打印从10到40的所有偶数。但是当我在Chrome浏览器控制台中执行代码时,我只看到10个。下面是我的代码:
var x = 10;
while (x !== 41 && x % 2 == 0){
console.log(x)
x++
}发布于 2019-10-07 19:52:21
问题出在x % 2 == 0部分。一旦x变为11,循环就会退出,因为该条件的计算结果为false。要使循环继续,while()参数中的两个条件的计算结果必须为true,因为您正在使用&&运算符。
您应该将该特定条件移动到循环内的if语句中,如下所示:
var x = 10;
while (x !== 41) {
if (x % 2 == 0)
console.log(x);
x++;
}
上面的解决方案一直运行到x为41为止,在这种情况下,如果x % 2等于0 (x为偶数),它将退出循环,并仅运行console.log(x)语句。
我想给你的一个建议是,养成使用===而不是==的习惯。这将确保您的值是正确的类型(例如,当x为"2"时,x == 2为true,但由于类型不同,x === 2将返回false ),并可能帮助您在调试时捕获一些错误。
另一个建议是使用x < 41而不是x !== 41,它更常用,对大多数人来说也更容易阅读。
发布于 2019-10-07 20:01:25
当您将x递增1时,在第一次迭代中,x的值变为11(奇数),并且while条件被破坏。您可以将x递增2,如下所示。
var x = 10;
while (x <= 40){
console.log(x);
x += 2;
}
发布于 2019-10-07 19:52:21
x = 10;
while(x < 41) {
if(x % 2 == 0) {
console.log(x);
}
x++;
}https://stackoverflow.com/questions/58268976
复制相似问题