我是Java新手,正在完成一些课程。但是,在下面的代码中,我在尝试编译时遇到错误“无法访问的语句”。关于我做错了什么的指示?
public String getDeliveredList() {
int count = 0;
while (count < deliveredList.size()){
return ("Order # " + count + deliveredList.get(count).getAsString());
count++;
}
}
答案 0 :(得分:10)
从函数返回后,逻辑上它在该点之后不再执行任何操作 - 永远不会达到count++
语句。
while (count < deliveredList.size()){
// function always ends and returns value here
return ("Order # " + count + deliveredList.get(count).getAsString());
// this will never get run
count++;
}
答案 1 :(得分:0)
如果从函数返回,那么函数返回后的任何语句基本上都是无法访问的语句,编译器会对这些语句发出错误。
但是,以下代码不会在返回
后写入语句时发出错误void max(int a,int b)
{
if(a>b)
{
System.out.println(a+" is greater");
return;
}
System.out.println(b+" is greater");
return;
}
这是因为第一个return语句是在嵌套范围内编写的,而不是在函数范围内立即可见。当a> b时,程序执行只会通过第一个return语句。如果不是这样,则永远不会执行该代码块。因此,尽管返回后有语句,但代码是可编译的;