变量值在第二次while循环后不会改变
Variable value doesn't change after second while loop
我有一个变量num
,我给它一个值。在第一个while循环之后,值发生了变化,但是当我尝试在第二个while循环中使用新值时,最终结果将不依赖于新的num
。
var a = 1,
b = 13,
c = 0,
p; ///6227020800 /// 48648600 ///1801800 ///1245404160 -> /5
function div(p) {
for (var i = a; i <= b; i++) {
if (p % i !== 0) {
c++;
}
}
if (c === 0) {
return 'YES'
}
return 'NO'
}
var num = 6227020800;
while (div(num) == "YES") {
num /= 2;
}
num = num * 2; // num === 48648600
while (div(num) == "YES") {
num /= 3;
}
num = num * 3; // num should be ///1801800 when num === 48648600
while (div(num) == "YES") {
num /= 5;
}
num = num * 5 // finally num should be 360360 when num === 1801800
我不清楚你想要完成什么,但似乎在div()
的第一次运行之后,c
迟早会增加,然后它再也不会是0
了。因此,div()
将永远不会返回"YES"
,并且以下while
循环将永远不会执行。
将div
简化如下:
function div(p) {
for (var i = a; i <= b; i++) {
if (p % i !== 0) return false;
}
return true;
}
这样可以消除您忘记在本地声明的c
变量。
现在只需更改程序的其余部分,以处理来自div
的布尔返回值,而不是查找"YES"
或"NO"
。
相关文章:
- 循环内的值不会改变
- jQuery在循环中改变这个的含义
- 为什么这个循环会改变每一轮中的所有值
- Javascript的右手值在循环中改变自身
- 如何制作改变起点的网站循环进度条
- 在不改变循环速度的情况下更改更新速度
- 循环的Javascript;t似乎正在改变'i'
- 当我执行循环时,AngularJs/Ajax索引正在改变
- 当我简单地改变两个表达式的顺序时,为什么这个for循环不能工作?
- For循环-改变src每个循环
- 在循环中使用setInterval来改变interval
- Javascript while或for循环,改变字符串直到满足条件
- 改变& lt; a>标签border-top's color菜单使用jQuery FOR循环
- 改变循环中元素的背景,然后改变悬停的颜色
- 为什么我的javascript不在这个while循环中改变bg的颜色?
- 改变img src属性值在循环- jquery
- 谷歌地图脚本-改变静态信息与变量从数据库循环
- 对于循环和动画,不能使用变量,因为由于闭包而改变
- Javascript for循环改变内容
- 动态改变循环的方向