控制流語句是用來 控制程序執行順序 的關鍵工具,它們允許你根據不同的條件執行不同的代碼塊,或者重復執行某段代碼。這使得程序能夠根據輸入和情況做出智能的決策,而不僅僅是線性的執行。
1. 條件語句 (Conditional Statements)
條件語句允許你根據 布爾表達式(true 或 false) 的結果來決定執行哪部分代碼。
1.1 if
語句
最基本的條件語句,用于在條件為真時執行一段代碼。
語法:
if (condition) {// 當 condition 為 true 時執行的代碼塊
}
示例:
int score = 85;
if (score >= 60) {System.out.println("恭喜,你及格了!");
}
1.2 if-else
語句
當
if
的條件為假時,你可以提供一個else
塊來執行另一段代碼。
語法:
if (condition) {// 當 condition 為 true 時執行的代碼塊
} else {// 當 condition 為 false 時執行的代碼塊
}
示例:
int temperature = 25;
if (temperature > 30) {System.out.println("天氣很熱,注意防暑!");
} else {System.out.println("天氣舒適。");
}
1.3 if-else if-else
語句
用于處理多個條件判斷,按順序檢查條件,一旦某個條件為真,就執行對應的代碼塊,然后跳出整個
if-else if-else
結構。
語法:
if (condition1) {// 當 condition1 為 true 時執行
} else if (condition2) {// 當 condition1 為 false,且 condition2 為 true 時執行
} else if (condition3) {// 當 condition1, condition2 都為 false,且 condition3 為 true 時執行
} else {// 當以上所有條件都為 false 時執行
}
示例:
int mark = 75;
if (mark >= 90) {System.out.println("優秀");
} else if (mark >= 80) {System.out.println("良好");
} else if (mark >= 60) {System.out.println("及格");
} else {System.out.println("不及格");
}
1.4 switch
語句
switch
語句提供了一種更簡潔的方式來根據一個 變量(通常是整型、字符型或枚舉類型) 的值執行不同的代碼塊。
語法:
switch (expression) {case value1:// 當 expression 等于 value1 時執行的代碼break; // 退出 switch 語句case value2:// 當 expression 等于 value2 時執行的代碼break;// ... 更多 casedefault: // 可選// 當 expression 不匹配任何 case 時執行的代碼
}
重要說明:
break
語句非常重要!它用于 終止switch
語句的執行。如果沒有break
,程序會 “穿透” (fall-through) 到下一個case
繼續執行,這通常不是我們想要的。default
塊是可選的,用于處理所有case
都不匹配的情況。
示例:
char grade = 'B';
switch (grade) {case 'A':System.out.println("優秀!");break;case 'B':System.out.println("良好!");break;case 'C':System.out.println("及格!");break;default:System.out.println("需要努力!");
}
2. 循環語句 (Looping Statements)
循環語句允許你 重復執行一段代碼,直到滿足某個條件為止。
2.1 for
循環
for
循環通常用于 已知循環次數 的情況。它包含三個部分:初始化、條件和迭代。
語法:
for (initialization; condition; iteration) {// 循環體:當 condition 為 true 時重復執行的代碼
}
示例:
// 打印 1 到 5
for (int i = 1; i <= 5; i++) {System.out.println("當前數字: " + i);
}
增強 for 循環 (For-Each Loop): 用于遍歷數組或集合中的元素,更加簡潔。
語法:
for (dataType element : arrayOrCollection) {// 對 element 進行操作
}
示例:
int[] numbers = {10, 20, 30, 40, 50};
for (int num : numbers) {System.out.println(num);
}
2.2 while
循環
while
循環在 循環條件為真時 不斷地重復執行代碼塊。它只包含一個條件。
語法:
while (condition) {// 當 condition 為 true 時重復執行的代碼塊// 必須有邏輯來最終使 condition 變為 false,否則會造成死循環
}
示例:
int count = 0;
while (count < 3) {System.out.println("循環次數: " + count);count++; // 必須有這行,否則是死循環
}
2.3 do-while
循環
do-while
循環與while
循環類似,但 至少會執行一次循環體,然后再根據條件判斷是否繼續循環。
語法:
do {// 循環體:至少執行一次// 必須有邏輯來最終使 condition 變為 false
} while (condition); // 注意這里的分號
示例:
int num = 5;
do {System.out.println("執行 do-while 循環,num = " + num);num--;
} while (num > 0);
3. 跳轉語句 (Jump Statements)
跳轉語句用于 改變程序的正常執行流程。
3.1 break
語句
在 循環語句 中:用于 立即終止整個循環,程序將跳到循環體外的下一條語句。
在
switch
語句 中:用于 立即終止switch
語句。
示例(在循環中):
for (int i = 0; i < 10; i++) {if (i == 5) {break; // 當 i 等于 5 時,跳出 for 循環}System.out.println(i);
}
// 輸出: 0, 1, 2, 3, 4
3.2 continue
語句
continue
語句用于 跳過當前迭代的剩余部分,直接進入下一次迭代(執行循環的更新部分,并重新檢查條件)。
示例:
for (int i = 0; i < 10; i++) {if (i % 2 == 0) { // 如果 i 是偶數continue; // 跳過這次循環的剩余部分,直接進行下一次迭代}System.out.println(i); // 只會打印奇數
}
// 輸出: 1, 3, 5, 7, 9
3.3 return
語句
return
語句用于 退出當前的方法,并將一個值(如果方法有返回值)返回給調用者。我們后面學習方法時會詳細講。
4. 總結:控制流語句
你已經成功掌握了 Java 中的控制流語句,這為編寫更復雜、更智能的程序奠定了堅實的基礎。簡單來說,控制流語句就像是程序的“大腦”,它們決定了代碼執行的順序、是否重復執行以及在何種條件下執行。
我們回顧一下今天學習的關鍵內容:
1. 條件語句 (Conditional Statements):
if
: 在條件為真時執行代碼塊。if-else
: 根據條件真假選擇執行不同的代碼塊。if-else if-else
: 處理多個互斥的條件判斷。switch
: 根據一個變量的值,簡潔地選擇執行多個代碼塊之一。
2. 循環語句 (Looping Statements):
for
: 適用于已知循環次數的場景,包含初始化、條件和迭代。增強
for
(For-Each Loop): 簡化了遍歷數組或集合的操作。while
: 在條件為真時持續循環。do-while
: 至少執行一次循環體,然后根據條件判斷是否繼續。
3. 跳轉語句 (Jump Statements):
break
: 立即終止循環或switch
語句。continue
: 跳過當前循環迭代的剩余部分,進入下一次迭代。return
: 退出當前方法(我們將在后續學習方法時深入探討)。
掌握了這些控制流語句,你就能讓你的 Java 程序具備“思考”和“決策”的能力,能夠根據不同的情況做出不同的反應,編寫出更具動態性和靈活性的代碼。