常見的編譯錯誤:missing return statement,通常發生在有條件判斷或迴圈的方法中,編譯器發現某些執行路徑沒有回傳值。
public int findIndex(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i; // 找到時回傳
}
}
// 錯誤:迴圈結束後沒有回傳值!
// 編譯器認為:如果陣列為空或未找到,這裡沒有 return
}
public int findIndex(int[] arr, int target) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == target) {
return i; // 找到立即回傳
}
}
return -1; // 迴圈結束仍未找到,回傳 -1 表示失敗
}
return 值; 結束// 條件判斷完整覆蓋
public String getGrade(int score) {
if (score >= 90) return "A";
else if (score >= 80) return "B";
else if (score >= 70) return "C";
else if (score >= 60) return "D";
return "F"; // 最後兜底,確保所有路徑都有回傳
}
// switch 陳述式
public String getDayName(int day) {
switch (day) {
case 1: return "Monday";
case 2: return "Tuesday";
// ...
default: return "Invalid day"; // 必須有 default
}
}
if、for、while、switch 分支這是 Java 初學者最常遇到的編譯錯誤之一,養成「先寫預設 return,再寫邏輯」的習慣即可避免。