确定奇/偶数,并使用While循环从Javascript计数器中添加

时间:2019-03-01 14:07:54

标签: javascript loops while-loop sum

我不知道为什么有时满足条件后它会停止循环(例如,从其前面的位置获取数字总和)。我认为代码有问题。在哪里?

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

3 个答案:

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