将循环更改为while循环会导致javascript网页崩溃吗?

时间:2017-03-05 18:30:43

标签: javascript

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);

2 个答案:

答案 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++;
}