我不知道为什么有时满足条件后它会停止循环(例如,从其前面的位置获取数字总和)。我认为代码有问题。在哪里?
var init = parseInt(prompt('enter an odd or even no.'));
var sec = init%2;
if (sec != 0) {
var loop = 5;
while (loop < 10) {
var num = 1;
loop += loop;
num += 2
}
document.write(num);
} else {
document.write('None');
}
答案 0 :(得分:1)
这是您要尝试做的吗?用var
声明的变量没有块作用域,因此可以在代码的顶部声明所有变量。
var init = parseInt(prompt('enter an odd or even no.'));
var sec = init % 2;
var loop = 5;
var num = 1;
if(sec != 0) {
while(loop < 10) {
num+=2;
loop++;
document.write(num);
}
} else {
document.write('None');
}
答案 1 :(得分:0)
正在发生循环,但是您只是看不到它,因为在循环时您什么都不打印。
您的代码应改为:
var init = parseInt(prompt('enter an odd or even no.'));
var sec = init%2;
if (sec != 0) {
var loop = 5;
while (loop < 10) {
var num = 1;
loop += loop;
num += 2
document.write(num);
}
} else {
document.write('None');
}
请注意,document.write(num)
现在位于循环中,因此它将在每次循环时打印。
以前,它是在外部设置的,因此本质上是在最后一次迭代之后才看到结果。
答案 2 :(得分:0)
您需要在num
语句之外使用1
初始化while
,因为您需要为每个循环分配该值。
我建议在代码顶部先声明所有变量。您也可以在此处分配已知值。
var init = parseInt(prompt('enter an odd or even no.'), 10),
sec = init % 2,
loop = 5,
num = 1;
if (sec != 0) {
while (loop < 10) {
loop += loop;
num += 2;
}
document.write(num);
} else {
document.write('None');
}