我嘗試了下面的代碼,但開關盒沒有像我預期的那樣作業。你能告訴我我哪里錯了嗎?
function counter() {
// const arr = prompt("Enter numbers").split(",");
let arr = [1,2,3,-1,0];
console.log(arr.length);
const neg=0, pos=0, zero=0;
for (var i = 0; i < arr.length; i ) {
let val = arr[i];
console.log(val);
switch (val) {
case (val === 0):
zero = 1;
console.log("zero");
break;
case (val < 0):
neg = 1;
console.log("neg");
break;
case (val > 0):
pos = 1;
console.log("pos");
break;
default:
console.log("not working");
break;
}
}
document.write("Negatives: " neg "<br>");
document.write("Positives: " pos "<br>");
document.write("Zeroes: " zero "<br>");
}
uj5u.com熱心網友回復:
您不能重新分配const. 這樣的事情會拋出一個錯誤:
const num = 0;
num = 1; // Uncaught TypeError: Assignment to constant variable.
另一個問題:在您的case陳述句中,您使用的運算式的計算結果為trueor false(運算式將在匹配之前進行計算),因此您必須使用switch(true)而不是switch(val):
function counter() {
// const arr = prompt("Enter numbers").split(",");
let arr = [1,2,3,-1,0];
let neg=0, pos=0, zero=0;
for (var i = 0; i < arr.length; i ) {
let val = arr[i];
switch (true) {
case (val === 0):
zero = 1;
console.log("zero");
break;
case (val < 0):
neg = 1;
console.log("neg");
break;
case (val > 0):
pos = 1;
console.log("pos");
break;
default:
console.log("not working");
break;
}
}
document.write("Negatives: " neg "<br>");
document.write("Positives: " pos "<br>");
document.write("Zeroes: " zero "<br>");
}
counter()
uj5u.com熱心網友回復:
switch只需要常數。沒有變數。不大于、小于或數字范圍
switch (val) {
case 0:
zero = 1;
console.log("zero");
break;
case < 0: // you can't do this with a switch
neg = 1;
console.log("neg");
break;
case > 0: // you can't do this either
pos = 1;
console.log("pos");
break;
default:
console.log("not working");
break;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/338717.html
標籤:javascript html 数组 切换语句 逻辑
上一篇:在GAS網路編輯器中鍵入符號
