當我觸發 if 條件時,為什么 else 也會列印出來?有人可以指出下面代碼的問題是什么?用JS寫的。

const rainbow = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
let colour = prompt("What is your favourite colour?").toLowerCase();
for (let i = 0; i < rainbow.length; i =1) {
if (rainbow[i] === colour) {
console.log("yes")
}
else {
console.log(rainbow.join(" *** "));
}
}
uj5u.com熱心網友回復:
這是因為您的回圈正在通過陣列運行。因此,例如,如果我說 red 它將轉到第一個 if,然后在第二次迭代之后它將轉到 else。如果此代碼不是一個函式,您需要在 if 中回傳,如果您希望回圈在此時停止。
const findColor = () => {
const rainbow = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
let colour = prompt("What is your favourite colour?").toLowerCase();
for (let i = 0; i < rainbow.length; i =1) {
if (rainbow[i] === colour) {
console.log("yes")
return rainbow[i]// It will leave the loop when it passes on the right color
}
else {
console.log(rainbow.join(" *** "));
return
}
}
}
如果您不想使用回圈,也可以使用 includes 函式:
console.log(rainbow.includes(colour) ? 'yes' : rainbow.join(" *** "));
uj5u.com熱心網友回復:
您甚至不需要為此使用回圈您可以使用陣列的包含函式來實作此目的。
const rainbow = ['red','orange','yellow','green','cyan','blue','violet'];
let colour = prompt("What is your favourite colour?").toLowerCase();
console.log(rainbow.includes(colour) ? 'yes' : rainbow.join(" *** "));
uj5u.com熱心網友回復:
您可以使用includes方法來檢查輸入。
const rainbow = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
let colour = prompt("What is your favourite colour?").toLowerCase();
if (rainbow.includes(colour)) {
console.log("yes")
}
else {
console.log(rainbow.join(" *** "));
}
uj5u.com熱心網友回復:
找到顏色后,您可以根據需要打破回圈:
const rainbow = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
const colour = prompt("What is your favourite colour?").toLowerCase();
for (let i = 0; i < rainbow.length; i =1) {
if (rainbow[i] === colour) {
console.log('yes');
break;
} else {
console.log(rainbow.join(" *** "));
}
}
但是稍微好一點的方法是完全洗掉回圈,并使用類似的陣列方法includes。
const rainbow = ['red', 'orange', 'yellow', 'green', 'cyan', 'blue', 'violet'];
const colour = prompt("What is your favourite colour?").toLowerCase();
if (rainbow.includes(colour)) {
console.log('yes');
} else {
console.log(rainbow.join(" *** "));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/325811.html
標籤:javascript if 语句
