我已經閱讀了很多關於SO的答案,但似乎無法找到一個明確的答案,爲什麼如果在這種情況下忽略break,情況「C」將總是被評估爲true,並且新的數組填充將只會「G」 的。我清楚地知道,休息會在這裏得到最好的使用,因爲我只是想要評估一個特定的比賽,但不是這樣,爲什麼如果確實省略了休息時,最後一種情況總是如此。爲什麼Break需要使用Switch?
var dna = "ATTGC";
var outArr = [];
dna.split("").forEach(function(e,i){
switch(e) {
case "G": outArr[i] = "C"; break;
case "T": outArr[i] = "A"; break;
case "A": outArr[i] = "T"; break;
case "C": outArr[i] = "G"; break;
}
console.log(outArr);
})
的'開關... case'聲明是這樣設計,如果你忽略'break'語句中條件的評價「落空」下的各類案件。所以,當你忽略'break'時,你所看到的是每個情況都匹配到最後一個情況的條件。 – 2016-09-28 21:20:59
並不是最後一種情況是正確的,而是每種情況都是一個入口點,在這個入口點之後,所有語句都會被執行,直到'switch'塊結束。 – shmosel
補充jeyoung評論。 'break'有一個很好的理由,如果你想爲不同的情況做同樣的事情,你可以做到這一點,而break會阻止它發生。 –