繁体   English   中英

尝试编译“while”语句时出现“无法访问的语句”

[英]“unreachable statement” when trying to compile a “while” statement

我是Java的新手并且正在完成一些课程。 但是,在下面的代码中,我在尝试编译时遇到错误“无法访问的语句”。 关于我做错了什么的指示?

public String getDeliveredList() {
   int count = 0;
   while (count < deliveredList.size()){
       return ("Order # " + count + deliveredList.get(count).getAsString());
       count++;
   }
}

从函数返回后,逻辑上它在该点之后就不再执行任何操作 - 永远不会达到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++;
}

如果从函数返回,那么函数返回后的任何语句基本上都是无法访问的语句,编译器将对这些语句发出错误。

但是,以下代码不会在返回后写入语句时发出错误

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语句。 如果不是这样,则永远不会执行该代码块。 因此,尽管返回后有语句,但代码是可编译的;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM