【发布时间】:2013-09-09 05:17:06
【问题描述】:
我正在尝试编写一个代码来随机化一个数字(1 - 100),然后打印从 40 到那个奇数的所有奇数。如果数字小于 40,它应该打印所有数字,直到随机数。
即如果数字是 45,它应该打印 41、43、45。如果它是 5,它应该打印 1、2、3、4、5。
在我添加else if 语句之前,我的以下代码一直有效。如果数字高于 40,当我添加它时,它仍然包括从 0 到 40 的所有数字吗?我不明白为什么我认为if 语句应该采用一种或另一种方式而不是两者兼而有之?
任何想法有助于解决这个问题,或者我做错了什么?
提前致谢
function myFunc() {
var x = Math.floor(Math.random() * 100);
var counter = [];
for (var i = 0; i < x; i++) {
if (i > 40 && i % 2 == 1) {
counter.push(i);
} else if (i < 40) {
counter.push(i);
}
}
return counter + ',' + x;
}
console.log(myFunc())
【问题讨论】:
-
在循环中,变量
i从0开始一直上升到x。如果x > 40循环仍然会从0 到40 迭代i,然后到x。你有什么不清楚的地方?也许你想检查x > 40或 ○x ? Anyway be aware that using this type of cases excludes the possibility in which x is 40`! -
您没有在循环中检查
x < 40。您需要检查它以确定您希望循环对每个i执行什么操作。
标签: javascript if-statement for-loop return-value