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