Почему этот код выдает ошибку «недоступный код»? - PullRequest
2 голосов
/ 28 марта 2012

Я не могу найти способ решить эту проблему. Все, что я делаю, это объявляю целое число и говорит мне, что код недоступен.

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
    }   
}

Ответы [ 5 ]

7 голосов
/ 28 марта 2012

Цитирую комментарий на вопрос Джим Х. :

Вы вернулись из метода pop (). Все, что после этого недоступно.

6 голосов
/ 28 марта 2012

Как только вы return из метода, вы возвращаетесь к методу, который вызвал метод в первую очередь.Любые операторы, которые вы помещаете после возврата, будут бессмысленными, так как это код, который вы не можете получить без серьезного нарушения счетчика программы (это может быть невозможно в Java).

0 голосов
/ 08 мая 2016

Простое объяснение на простом английском языке будет следующим:

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

метод private Object pop(){} ищет тип возврата Object, и вы только что дали этот тип возврата, написав return myStack[0]; .SoВаш метод не обязательно достигает int count2 = 0;, потому что предполагал, что метод уже достиг своей цели.

0 голосов
/ 29 июля 2015

Объявите перед возвратом myStack [0], который исправляет

0 голосов
/ 28 марта 2012

Недоступный код приводит к ошибке компилятора в Java.

В вашей программе строка

int count2 = 0;

никогда не будет достигнуто, поскольку это после оператора return.

Поместите эту строку над оператором return для работы.

...