首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 流程控制語句完整指南:if、switch、for、while、do-while 與跳轉語句詳解

     編輯:Java 相關知識

Java 程序結構三大基石:順序、選擇、循環

程序執行流程控制是編程基礎核心。Java 提供豐富的選擇與循環結構,本文系統整理 if 三種形式、switch 版本演進、三大循環異同、跳轉語句最佳實踐,附帶經典算法案例驗證。

選擇結構:if 語句三種形式

1. 單分支 if

if (條件) {
    // 條件為 true 執行
}

流程:判斷 → true 執行語句塊 → false 跳過

2. 雙分支 if-else

if (條件) {
    // true 分支
} else {
    // false 分支
}

流程:判斷 → 二擇一執行 → 合流

3. 多分支 if-else if-else

if (條件1) { ... }
else if (條件2) { ... }
else if (條件3) { ... }
...
else { ... }  // 兜底

流程:自上而下判斷 → 首個 true 執行對應塊 → 跳出整個結構 → 全 false 執行 else

案例:分段函數求值

x ≥ 3    → y = 2x + 1
-1 ≤ x < 3 → y = 2x
x ≤ -1   → y = 2x - 1
int x = 5, y;
if (x >= 3) y = 2 * x + 1;
else if (x >= -1) y = 2 * x;
else y = 2 * x - 1;

選擇結構:switch 版本演進與增強

switch (表達式) {
    case 值1: 語句塊1; break;
    case 值2: 語句塊2; break;
    ...
    default: 語句塊N; break;
}

表達式類型支援歷程

JDK 版本支援類型
1.1~1.4char, byte, short, int
1.5~1.6+ enum
1.7++ String
12+ (Preview)+ switch 表達式、yield、模式匹配

案例:星期判斷

Scanner sc = new Scanner(System.in);
int day = sc.nextInt();
switch (day) {
    case 1: System.out.println("星期一"); break;
    case 2: System.out.println("星期二"); break;
    case 3: System.out.println("星期三"); break;
    case 4: System.out.println("星期四"); break;
    case 5: System.out.println("星期五"); break;
    case 6: System.out.println("星期六"); break;
    case 7: System.out.println("星期日"); break;
    default: System.out.println("輸入錯誤");
}

循環結構:三大循環異同深度對比

for 循環

for (初始化; 條件; 步進) { 循環體 }
  • 執行順序:初始化 → 判斷 → 體 → 步進 → 判斷...
  • 變量作用域僅限循環內,結束自動釋放,內存效率最高
  • 適用:已知次數、計數器遍歷

while 循環

初始化;
while (條件) { 循環體; 步進; }
  • 先判斷後執行,可能零次執行
  • 變量作用域外部可見,靈活但需手動管理
  • 適用:未知次數、條件驅動

do-while 循環

初始化;
do { 循環體; 步進; } while (條件);
  • 至少執行一次(先執行後判斷)
  • 適用:菜單交互、至少一次業務邏輯

案例:水仙花數統計(for 循環最佳)

int count = 0;
for (int x = 100; x < 1000; x++) {
    int ge = x % 10, shi = x / 10 % 10, bai = x / 100;
    if (ge*ge*ge + shi*shi*shi + bai*bai*bai == x) count++;
}
System.out.println("水仙花數共 " + count + " 個");  // 輸出 4 個

循環選擇建議優先級

for > while > do-while
優先 for(作用域封閉、語義清晰),條件複雜用 while,至少一次用 do-while。

跳轉語句:break 與 continue

關鍵字循環中作用switch 中作用
break結束當前循環跳出 switch 結構
continue結束本次迭代,進入下一次無效(編譯錯誤)

注意:跳轉語句脫離循環/switch 獨立使用無意義。

總結

掌握流程控制的關鍵在於:理解每種結構的執行順序、變量作用域、適用場景。實際開發中,for 佔比 70%+,switch 配合枚舉/字符串處理多路分支,break/continue 靈活控制迭代節奏。良好的結構化編程習慣,是代碼可讀性與可維護性的基石。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved