【发布时间】:2014-03-10 00:13:59
【问题描述】:
下面是一个在 JavaScript 中返回给定数字的质因数的函数。 我没有写这个函数,但一直在研究它以扩展我的编程知识。
我的问题是关于以下 if 语句中的 while 循环。
if(num % x){
x = 3;
while((num % x) && ((x = x+2) < root));
}
问题
- 如果后面没有代码,while 循环的目的是什么?
- 当 while 循环计算结果为 true 时会发生什么?
- 当 while 循环评估为 false 时会发生什么?
这是完整的功能。
function getPrimeFactors(num){
num = Math.floor(num);
var root = 0;
var factors = [];
var doLoop = 1 < num;
var x = 0;
while(doLoop){
root = Math.sqrt(num);
x = 2;
if(num % x){
x = 3;
while((num % x) && ((x = x+2) < root));
}
if(x > root){
x = num;
}else{
x = x;
}
factors.push(x);
doLoop = (x != num);
num = num/x;
}
return factors;
}
谢谢你的帮助!!!
【问题讨论】:
-
它改变了
x的值。 While 循环将继续循环,直到其条件被评估为假。
标签: javascript while-loop