簡體   English   中英

嘗試從 while 循環返回時出現無法訪問的語句錯誤 - Java

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM