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

循环中的两个错误:

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

第一个是你调用isEven而不是使用结果。在if中,您实际上只是在使用if(true)if(false),因此您将始终进入第一个,永远不会进入第二个。

第二个错误是每次添加输入的数字时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;
}

最新更新