2 回答

TA貢獻1828條經驗 獲得超13個贊
循環中的兩個錯誤:
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;
}

TA貢獻1833條經驗 獲得超4個贊
嘗試使用這個。
您遇到了一些問題: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;
}
添加回答
舉報