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

Java 流程控制語句完全指南:if/switch/while/for/break/continue/多重循環

     編輯:Java 相關知識

流程控制是程序邏輯的骨架。本文系統講解 Java 中條件語句(if/switch)、循環語句(while/do-while/for)、跳轉語句(break/continue)及多重循環的語法、執行流程、常見陷阱與最佳實踐,附帶可視化流程圖與代碼示例。

一、條件語句

1. if 單分支

if (condition) { /* 單句可省略大括號 */ }

2. if-else 雙分支

if (condition) { ... } else { ... }

3. if-else if-else 多分支

if (cond1) { ... } else if (cond2) { ... } else { ... }

特點:自上而下判斷,首個滿足條件的分支執行後結束整個結構。

4. 嵌套 if

if (outer) { if (inner) { ... } else { ... } } else { ... }

外層條件成立才會進入內層判斷。

5. switch 多分支(JDK 12+ 支援表達式與 -> 箭頭語法,本文基於傳統語法)

switch (expr) {
    case val1: stmt1; break;
    case val2: stmt2; break;
    default: stmtDefault;
}

關鍵規則:

  • expr 必須為整型、字符型、枚舉或 String (JDK 7+)
  • case 後只能是常量或常量表達式,不能是變量
  • 無 break 會**貫穿**執行後續 case(可利用此特性合併 case)
  • default 位置任意,可省略
// 合併 case 示例
case 1: case 2: System.out.println("1 或 2"); break;

二、循環語句

1. while:先判斷後執行

while (condition) { body; }

2. do-while:先執行後判斷,至少一次

do { body; } while (condition);

3. for:結構化計數循環

for (init; condition; update) { body; }

執行順序:init → condition → body → update → condition → ...

三部分皆可省略,但分號不可省**:

  • 省略 init:外部預先初始化
  • 省略 condition:死循環,需內部 break
  • 省略 update:循環體內手動更新
// 多變量初始化與更新
for (int i=1, j=5; j>=1; i++, j--) {
    System.out.println(i + "+" + j + "=" + (i+j));
}
// 複雜條件
for (int i=1; i<10 && i!=5; i++) { ... }

三、跳轉語句

語句作用適用範圍
break立即退出最近的循環/switch循環、switch
continue跳過本次循環剩餘代碼,進入下一次迭代循環
for (int i=0; i<10; i++) {
    if (i==3) continue; // 跳過 3
    if (i==8) break;    // 8 時結束循環
    System.out.println(i);
}
// 輸出 0,1,2,4,5,6,7

四、多重循環(嵌套循環)

外層循環一次,內層循環一圈。常見應用:矩陣操作、九九乘法表、排序算法。

for (int i=1; i<=9; i++) {
    for (int j=1; j<=i; j++) {
        System.out.print(j + "*" + i + "=" + (i*j) + "\t");
    }
    System.out.println();
}

多重循環執行流程圖

五、帶標籤的 break/continue(進階)

outer: for (int i=0; i<3; i++) {
    inner: for (int j=0; j<3; j++) {
        if (i==1 && j==1) break outer; // 直接跳出外層循環
        System.out.println("i=" + i + ", j=" + j);
    }
}

標籤必須緊鄰循環語句,可實現多層嵌套的精確跳出。

六、最佳實踐建議

  1. **優先用 for** 當迭代次數可知;不定次數用 while
  2. **避免深層嵌套**(>3 層),提取方法或用 Stream API 替代
  3. **switch 總加 default**,防止漏判
  4. **循環變量作用域最小化**,在 for 括號內聲明
  5. **慎用 break/continue 標籤**,降低可讀性,優先重構邏輯

熟練掌握流程控制,是寫出清晰、高效、無 Bug 代碼的基礎。

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