繁体   English   中英

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

[英]JavaScript:User enters numbers until he enters 0.Each numbers parity is determined and at the end,the total number of even and odd numbers is printed

我还需要使用 function 来测试数字的奇偶性。 当我输入几个数字(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;
}

循环中的两个错误:

isEven(a);
if(true){
    Even = Even + a
};
if(false){
    Odd = Odd + a
};

第一个是您正在调用isEven而没有使用结果。 if您实际上只是使用if(true)if(false) ,那么您将始终在第一个中使用 go 而在第二个中永远不会。

第二个错误是每次您添加输入的数字a而不是 1,如果您需要偶数/奇数的数量,这就是您想要的。

因此,保持您的(相当不寻常的)结构,您将拥有:

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:"));
  1. 您检查 IsEven(a) 但从不将该值赋予您的条件。

l

et 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;
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM