`return` 是 Java 流程控制關鍵字,具備雙重功能:返回值給呼叫者與立即結束當前方法執行。正確理解其在不同返回型別方法中的行為,是寫出健壯程式的基礎。
| 方法宣告 | return 形式 | 說明 |
|---|---|---|
int getAge() | return age; | 必須返回 int 相容值,不可省略 |
void printAge() | return; 或無 | 僅結束方法,不可 跟任何表達式 |
void check(int a) | if (a>0) return; | 提前結束(守衛子句),後續程式碼不執行 |
public class ReturnDemo {
private int age = 25;
// 1. 有返回值:必須 return 表達式
public int getAge() {
return age; // 編譯器強制要求
}
// 2. 無返回值:可用 return; 提前離開
public void printAge() {
System.out.println("Age: " + age);
// return; // 可省略,方法結束隱含返回
}
// 3. 守衛子句:參數檢查失敗直接返回
public void setAge(int age) {
if (age < 0 || age > 150) {
System.err.println("非法年齡: " + age);
return; // 結束方法,不執行賦值
}
this.age = age;
}
// 4. try-finally 中的 return 行為
public int tricky() {
try {
return 1; // 先記錄返回值 1
} finally {
System.out.println("finally 執行");
// return 2; // 若這裡也 return,會覆蓋 try 的返回值!慎用
}
// 實際返回 1
}
}
missing return statement。