为什么此代码会出现“无法访问的代码”错误?

时间:2012-03-27 22:20:40

标签: java compiler-errors unreachable-code

我似乎无法找到解决此问题的方法。我正在做的就是声明一个整数,它告诉我代码无法访问。

private class myStack{
    Object [] myStack = new Object[50];

    private void push(Object a){
        int count = 50;
        while(count>0){
            myStack[count]=myStack[count-1];
            count--;
        }
        myStack[0]=a;
    }

    private Object pop(){
        return myStack[0];
        int count2 = 0; //Unreachable Code
    }   
}

6 个答案:

答案 0 :(得分:7)

Jim H.引用对问题的评论:

  

您从pop()方法返回。之后的任何事情都无法到达。

答案 1 :(得分:6)

从方法中return后,您将返回到首先调用该方法的方法。在返回之后放置的任何语句都是没有意义的,因为这是在没有严重违反程序计数器的情况下无法访问的代码(在Java中可能无法实现)。

答案 2 :(得分:0)

无法访问的代码导致Java中的编译器错误。

在你的程序中

int count2 = 0;

永远不会到达,因为它是在return语句之后。

将此行放在return语句上方。

答案 3 :(得分:0)

简单的英文简单解释如下:

 private Object pop(){
    return myStack[0];
    int count2 = 0; //Unreachable Code
} 

方法private Object pop(){}正在寻找返回类型Object,您只需通过编写return myStack[0];来提供该返回类型。因此,您的方法不一定会达到int count2 = 0;该方法已达到目标。

答案 4 :(得分:0)

函数中的最后一条语句应该是return语句。

由于计数器作用域结束后它会干扰新内存的分配,因此lining工具会对其进行标记。

答案 5 :(得分:-1)

在返回修复

的myStack [0]之前声明