[英]Unreachable statement error when trying to return from a while loop - Java
static long minDaysToEmpty(long C, long l) {
long previousFill=C;
long day=1;
long currentFill=C;
while(true){
currentFill=Math.min(C,(previousFill-(day))+l);
previousFill=currentFill;
day++;
if(day>3){
return day;
}
}
return day;
}
此代碼會引發編譯時錯誤。
Test.java:15: error: unreachable statement return day;
我不明白為什么這個聲明達不到。
在對原始代碼進行以下修改后,可以訪問 if 塊
if(day>3){
break;
}
但是在同一個塊內返回語句是不可訪問的。
由於 while 循環是while (true)
且不包含break
語句,因此循環退出的唯一方法是滿足此條件,該條件已從方法返回
if (day > 3) {
return day;
}
因此,方法底部的return day
是不可能到達的。
只需刪除該線路return day;
在方法的底部。 如果你的邏輯是正確的並且day
最終會大於 3,你就不需要它。
或者,選擇一個合適的條件而不是while (true)
,或者添加一個 break 語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.