用while循环计算从1到a的所有偶数之和

时间:2018-08-16 09:49:40

标签: javascript

我已经注释了我的代码,无法理解错误所在:

function testWhile(a) {
    var x = 1;             // we count from 1
    var sum = 0;           // first, sum equals 0
    while (x <= a) {       // we have a condition from 1 to a
        x++;               // we add 1 because we move ahead
        if (x % 2 === 0) { // we check whether it is even
            sum = x + sum; // we refresh the sum

        }
    }

    return sum; 
}           // we return sum

2 个答案:

答案 0 :(得分:1)

就像@Cerbrus所说的那样,您的代码丢失了}。但是,有一种更好的方法可以解决您的问题。只使用求和公式。

function testWhile(a) {
    if (a % 2 == 1)
        return (2 + (a - 1)) / 2 * ((a - 1) / 2);
    return (2 + a) / 2 * (a / 2);
}

答案 1 :(得分:-1)

尽管建议使用更好的方法here,但是代码问题在于x++操作之前的modulas条件,这会导致额外添加最后一个偶数

通过在 while循环末尾移动 x ++ 可以使用您的代码:

function testWhile(a) {
    var x=1;// we count from 1
    var sum=0;// first, sum equals 0
    while (x<=a){ //we have a condition from 1 to a
       
        if (x % 2 === 0) {//we check whether it is even
    sum=x+sum;//we refresh the sum
           
        }
         x++; //we add 1 because we move ahead
    }
    
    return sum;//we return sum
    }
    console.log(2==testWhile(3));
    console.log(12==testWhile(6));