JavaScript:用户输入数字直到他输入0.确定每个数字奇偶校验,最后打印偶数和奇数的总数

我还需要使用该函数来测试数字的奇偶校验。当我输入几个数字(1,2,3,4,然后是0)时,程序显示“9,0”。我不知道为什么


let Even = 0;

let Odd = 0;

let a = parseInt(prompt("Enter a number:"));

while (a != 0 ) {

        a = parseInt(prompt("Enter a number:"));

        isEven(a);

            if(true){

                Even = Even + a};

            if(false){

                Odd = Odd + a};

                };

console.log(Even,Odd);


function isEven(value){

    if (value%2 == 0)

        return true;

    else

        return false;

}


慕田峪9158850
浏览 92回答 2
2回答

慕田峪7331174

循环中的两个错误:isEven(a);if(true){    Even = Even + a};if(false){    Odd = Odd + a};第一个是你正在调用而不是使用结果。在你字面上只是使用和,所以你总是在第一个,永远不会在第二个。isEvenifif(true)if(false)第二个错误是,每次你添加输入的数字而不是1,如果你需要偶数/奇数的数量,这就是你想要的。a因此,保持你的(相当不寻常的)结构,你会有:var test = isEven(a);if(test === true){    Even = Even + 1;}if(test === false){    Odd = Odd + 1;}以更传统的方式,我建议:if(isEven(a)){    Even = Even + 1;} else {    Odd = Odd + 1;}

潇潇雨雨

尝试使用这个。您遇到了一些问题:1.假设您键入 1,提示将关闭,而第一次迭代将继续。打开一个新提示,因此永远不会计算 1。let a = parseInt(prompt("Enter a number:"));while (a != 0 ) {        a = parseInt(prompt("Enter a number:"));您选中 IsEven(a),但从不将该值分配给您的条件。let Even = 0;    let Odd = 0;    let a = parseInt(prompt("Enter a number:"));    while (a != 0 ) {           var isEvenResult = isEven(a)                if(isEvenResult){                    Even += parseInt(a);                    }               else{                    Odd += parseInt(a);                    }        a = parseInt(prompt("Enter a number:"));                    }`enter code here`    console.log(Even +','+ Odd);    function isEven(value){        if (value%2 == 0)            return true;        else            return false;    }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript