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

Java 程序流程控制結構詳解:選擇、循環與條件表達式

     編輯:Java 程式設計入門

Java 程序流程控制核心概念

程序流程控制結構決定代碼執行順序,是編程基礎中的基礎。Java 提供三大基本結構:順序、選擇、循環,以及異常處理結構。本文系統梳理選擇結構與條件表達式的核心知識點。

選擇結構概覽

選擇結構根據條件執行不同代碼路徑,Java 提供兩種形式:

  • 雙分支:if-else 語句
  • 多分支:switch 語句

條件表達式分類

類型描述示例
關係表達式比較兩個同類型值,結果為 booleanx % 2 == 0、x + y >= 0
邏輯表達式邏輯運算符連接,結果為 booleanx > 6 && y < 3、year % 4 == 0 && year % 100 != 0 || year % 400 == 0
條件運算表達式三目運算符,語法:條件 ? 值1 : 值2max = (a > b) ? a : b

if-else 語句詳解

基本語法


// 塊語句形式(推薦)
if (條件) {
    語句1;
} else {
    語句2;
}

// 單行形式(簡單場景)
if (條件) 語句1; else 語句2;

閏年判斷實例


public class LeapYearDemo {
    public static void main(String[] args) {
        int year = 2012;
        // 閏年條件:能被4整除但不能被100整除,或能被400整除
        boolean isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
        
        if (isLeapYear) {
            System.out.println(year + " 是閏年");
        } else {
            System.out.println(year + " 不是閏年");
        }
    }
}

if-else 嵌套與多重選擇

else-if 鏈式結構


if (條件1) {
    語句1;
} else if (條件2) {
    語句2;
} else if (條件3) {
    語句3;
} else {
    語句N; // 以上條件都不滿足時執行
}

執行特性

  • 短路求值:條件由上至下判斷,首個滿足條件的分支執行後直接跳出
  • else 配對規則:else 永遠與最近的未配對 if 匹配
  • 大括號最佳實踐:建議始終使用 {} 明確作用域,避免配對混淆

常見錯誤與最佳實踐

錯誤示例:懸空 else


// 錯誤:else 匹配給了內層 if
if (x > 0)
    if (y > 0)
        System.out.println("第一象限");
else
    System.out.println("x 不大於 0"); // 實際匹配內層 if!

// 正確:使用大括號明確結構
if (x > 0) {
    if (y > 0) {
        System.out.println("第一象限");
    }
} else {
    System.out.println("x 不大於 0");
}

條件表達式優化技巧

  • 衛語句模式:提前返回,減少嵌套層級
  • 布爾變量提取:將複雜條件提取為有意義的變量名
  • 避免雙重否定:用 if (isValid) 替代 if (!isInvalid)

switch 語句補充

適用於多值匹配場景(Java 12+ 支援 switch 表達式):


// 傳統 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("無效日期");
}

// Java 12+ switch 表達式
String type = switch (day) {
    case 1, 2, 3, 4, 5 -> "工作日";
    case 6, 7 -> "週末";
    default -> "無效日期";
};

掌握流程控制結構是編寫清晰、正確代碼的前提。建議新手多練習條件邏輯組合,養成使用大括號和提取布爾變量的好習慣。

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