[JavaScript] 深入理解流程控制結構

在編程中,流程控制是指控制代碼執行順序的機制。通過流程控制結構,我們可以根據不同的條件執行不同的代碼塊,實現邏輯判斷、循環遍歷和跳出循環等功能。常見的流程控制語句有:if-else、switch-case、for、while,以及控制語句break和continue。本文將詳細講解這些控制結構的用法,并深入理解break和continue的應用。
1. if-else 語句
if-else語句是最基本的流程控制結構之一,用于基于條件表達式來執行不同的代碼塊。它通過判斷一個或多個條件表達式的真假來決定是否執行某個代碼塊。
基本語法:
if (condition) {
// 條件為 true 時執行的代碼
} else {
// 條件為 false 時執行的代碼
}
示例:
let age = 20;
if (age >= 18) {
console.log("成年人");
} else {
console.log("未成年人");
}
擴展:else if
如果有多個條件需要判斷,可以使用else if來處理多個分支條件。
let score = 85;
if (score >= 90) {
console.log("優秀");
} else if (score >= 75) {
console.log("良好");
} else if (score >= 60) {
console.log("及格");
} else {
console.log("不及格");
}
2. switch-case 語句
switch-case語句用于處理多個可能的條件,通常適用于多個不同值的判斷。它與if-else相比更簡潔,尤其在有多個值需要判斷時。
基本語法:
switch (expression) {
case value1:
// expression === value1 時執行的代碼
break;
case value2:
// expression === value2 時執行的代碼
break;
default:
// 如果沒有匹配的 case 執行的代碼
}
示例:
let fruit = "apple";
switch (fruit) {
case "apple":
console.log("這是一個蘋果");
break;
case "banana":
console.log("這是一個香蕉");
break;
default:
console.log("未知的水果");
}
注意事項:
switch語句會比較嚴格的值(包括數據類型),因此如果需要進行非嚴格的比較,可以考慮使用if-else。break是用來跳出switch語句塊的。如果沒有break,程序會繼續執行下一個case,即使它的值不匹配,這種情況叫做fall-through。
3. for 循環
for循環用于重復執行一段代碼,直到滿足退出條件。它通常用于已知執行次數的場景。
基本語法:
for (initialization; condition; increment) {
// 循環體
}
initialization:初始化部分,通常用于定義和初始化循環變量。condition:條件表達式,判斷是否繼續執行循環。increment:每次循環結束時,更新循環變量。
示例:
for (let i = 0; i < 5; i++) {
console.log(i); // 輸出 0 1 2 3 4
}
擴展:for-in 和 for-of
for-in:用于遍歷對象的鍵(屬性)。for-of:用于遍歷數組或其他可迭代對象的元素。
// for-in 示例
const person = { name: "Alice", age: 25 };
for (let key in person) {
console.log(key + ": " + person[key]);
}
// for-of 示例
let arr = [1, 2, 3];
for (let value of arr) {
console.log(value); // 輸出 1 2 3
}
4. while 循環
while循環用于在條件為真時反復執行一段代碼,適用于循環次數不確定的情況,通常在開始前無法預知循環次數時使用。
基本語法:
while (condition) {
// 循環體
}
示例:
let count = 0;
while (count < 5) {
console.log(count); // 輸出 0 1 2 3 4
count++;
}
注意事項:
- 如果條件從一開始就是
false,while循環不會執行任何代碼。 - 使用
while時要小心無限循環,確保循環條件最終能變為false。
5. do-while 循環
do-while循環與while循環類似,區別在于do-while會先執行一次循環體,然后再檢查條件。
基本語法:
do {
// 循環體
} while (condition);
示例:
let count = 0;
do {
console.log(count); // 輸出 0 1 2 3 4
count++;
} while (count < 5);
6. break 和 continue 的使用
6.1 break
break語句用于跳出循環或switch-case語句塊,通常在滿足某個條件時使用,跳出當前的循環或代碼塊。
示例:
for (let i = 0; i < 10; i++) {
if (i === 5) {
break; // 當 i 等于 5 時跳出循環
}
console.log(i);
}
輸出:
0
1
2
3
4
6.2 continue
continue語句用于跳過當前循環的剩余部分,直接進入下一次循環迭代。它不會終止整個循環,而是跳過當前循環中的其余代碼,繼續執行下一次循環。
示例:
for (let i = 0; i < 5; i++) {
if (i === 2) {
continue; // 當 i 等于 2 時跳過當前循環
}
console.log(i);
}
輸出:
0
1
3
4
總結
- if-else:用于條件判斷,決定執行哪段代碼。
- switch-case:用于多條件選擇,尤其適用于固定值判斷。
- for:用于已知次數的循環,通常用于遍歷數組或固定次數的任務。
- while:用于在未知次數的情況下執行循環,直到條件不再滿足。
- break:用于跳出當前循環或
switch語句塊。 - continue:用于跳過當前循環的剩余部分,進入下一次迭代。
掌握這些控制結構和語句的使用,可以使你在編寫代碼時更加靈活和高效,能夠應對各種復雜的邏輯需求。在實際開發中,合理地選擇控制結構將直接影響代碼的可讀性和執行效率。
本文來自博客園,作者:DevKevin,轉載請注明原文鏈接:http://www.rzrgm.cn/kevinbee/p/18680438


浙公網安備 33010602011771號