JS新手。我正在尝试将for循环更改为while循环。它打印一个数字的因子,但由于某种原因,while循环导致网页停止响应。任何帮助表示赞赏。
var num, i = 1,
array = [];
num = parseInt(prompt("Please enter a number:"));
while (i < num) {
if (num % i == 0) {
array.push(i);
i++;
}
}
alert("The factors of " + num + " are: " + array + " and " + num);
答案 0 :(得分:4)
将mViewPager = (ViewPager)findViewById(R.id.pager);
变量的增量移到mViewPager = (ViewPager) mViewPager.findViewById(R.id.pager);
条件之外。否则,当i
无法被指定if
整除时,while
循环将会卡住。
例如 - 如果num
为5且i
为2,则循环将被卡住,因为未满足num
条件 - 这就是为什么i
不会增加 - 然后我们将经历无限循环。
if
答案 1 :(得分:0)
仅当“if”块的条件为真时才递增NSCompoundPredicate
。如果该条件的计算结果为false,则i
不能递增,因此循环永远不会结束。
i
所以试试:
if (num % i == 0) { // <some value except 0> % 1 == 0 -> false
array.push(i);
i++;
}