我还需要使用函数来测试数字的奇偶校验。当我输入几个数字(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:"));
- 你检查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;
}