js求数学题求1-1/2+1/3-1/4+1/5....1/100的和?

<!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,判断为假,也是直接退出了

逻辑问题楼上讲了,但是我想说的是,这种问题一般采用数学公式解决的,而不是像你用循环一个一个计算。计算量小还行,一旦计算量大了,那花费的时间就太多了。