<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script>
var i = 1;
var sum1 = 0;
var sum2 = 0;
while(i % 2 == 0 && i <= 100){
sum1 = -1/i + sum1;
i++;
}
while(i % 2 != 0 && i <= 100){
sum2 = sum2 + 1/i;
i++;
}
alert(sum1 + sum2);
</script>
</head>
<body>
</body>
</html>
为什么我用上述的代码算不出正确的值?while括号内的条件不可以是两个吗?
你自己走一遍while逻辑试试。
i等于1,i%2等于1,判断为真,执行里面的循环体;i等于2,i%2等于0,判断为假,跳出循环,到这里while整个循环就结束了,就没了,没有i为3,4,5...的计算了,开始计算你下面的while了,下面的while更惨,i等于1,i%2等于1,判断为假,也是直接退出了
逻辑问题楼上讲了,但是我想说的是,这种问题一般采用数学公式解决的,而不是像你用循环一个一个计算。计算量小还行,一旦计算量大了,那花费的时间就太多了。