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

Java 控制流程全解析:if/else、循環、switch、標籤跳轉

     編輯:Java 相關知識

條件語句


// 單行語句可省略大括號(不推薦,易出錯)
if (score >= 60) System.out.println("及格");

// 代碼塊(推薦)
if (score >= 60) {
    System.out.println("及格");
} else {
    System.out.println("不及格");
}

// 多重分支
if (score >= 90) grade = 'A';
else if (score >= 80) grade = 'B';
else if (score >= 70) grade = 'C';
else grade = 'D';

最佳實踐:永遠用大括號,避免「懸空 else」與維護時漏加語句導致邏輯錯誤。

循環語句

while(先判斷)

while (condition) {
    // body
}

do-while(後判斷,至少執行一次)

do {
    // body
} while (condition);

for(計數循環首選)

for (int i = 1; i <= 10; i++) {
    // i 作用域僅限 for 塊內
}

Java 5+ 增強 for(for-each)遍歷數組/集合:

for (String s : list) { ... } // 僅讀遍歷,無索引、無法刪除

switch 多重選擇

switch (day) {
    case 1: case 2: case 3: case 4: case 5:
        System.out.println("工作日"); break;
    case 6: case 7:
        System.out.println("週末"); break;
    default:
        System.out.println("非法輸入");
}
  • 支持類型:char、byte、short、int、String(Java 7+)、enum。
  • 不支持:long、float、double、boolean。
  • break 缺失會「貫穿」執行下一 case,極少數場景故意利用(需註釋 // fall through)。

標籤跳轉

用於跳出多層嵌套循環:

outer: for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
        if (matrix[i][j] == target) {
            System.out.println("Found at " + i + "," + j);
            break outer; // 直接跳出外層循環
        }
    }
}

continue outer; 同理跳過外層當前迭代。慎用,降低可讀性;優先考慮提取方法返回、異常跳出、標志變量。

現代替代方案

  • Stream API(Java 8+):list.stream().filter(...).findFirst() 替代查找循環。
  • Optional:替代 null 檢查鏈。
  • 模式匹配 switch(Java 17+):switch (obj) { case String s -> ...; case Integer i -> ...; } 類型安全分支。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved