Как отобразить сообщение без возврата значения

В этой функции, если isEmpty, я не хочу возвращать 0 или любое числовое значение .. Я просто хочу отображать сообщение, когда я выхожу из очереди из main. Как я могу это сделать, обработав исключение с этим настраиваемым сообщением или любым другим способом?

public int dequeue()
    {
        if (this.isEmpty()){
            System.out.println("Queue is Empty !"); 
            return 0;
        }
        else{ 
            first++; 
            int x = arr[first]; 
            return x;
        }
    }

Небольшой совет: вы можете сказать if (isEmpty ()), поскольку вы работаете в том же классе, что и метод isEmpty (). this.method () почти никогда не нужен

faris 10.09.2018 04:30

@faris Понял, спасибо :) Но это значит, что мне не нужно использовать "это". в любой ситуации в java?

Ahmed Usama 10.09.2018 04:46

Есть и другие ситуации, когда вы можете использовать ключевое слово this, например, для установки глобальных переменных в конструкторе или использования объекта класса в качестве параметра в другом методе, но что касается вызова метода в том же классе, что и вы, я могу ' Я не думаю о том времени, когда вам это может понадобиться.

faris 10.09.2018 04:49
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
127
3

Ответы 3

public void dequeue()
    {
        if (this.isEmpty()){
            System.out.println("Queue is Empty !"); 
        }
        else{ 
            first++; 
            int x = arr[first]; 
        }
    }

Это должно напечатать строку, если первый оператор оценивает истину, не требуя от вас ничего возвращать.

Я думал об этом, но я хочу вернуть исключенное из очереди значение, если второй случай верен, также мне нужно научиться обрабатывать исключения w в таких случаях

Ahmed Usama 10.09.2018 04:21

В вашем случае программа будет нормально работать, если вы удалите оператор return. Но лучше использовать оператор return, чтобы избежать ненужных сложностей.

Предположим, необходимо добавить оператор возврата, как я справлюсь с этой ситуацией?

Ahmed Usama 10.09.2018 04:24

Вместо возврата 0 создайте настраиваемое исключение, например QEmptyException, а затем обработайте это исключение при вызове функции dequeue ().

Prashant Singh 10.09.2018 04:29
public int dequeue() throws ArrayIndexOutOfBoundsException
{
    first++; 
    int x = arr[first]; 
    return x;
}

И когда вы это называете:

try {
    dequeue();
} catch (ArrayIndexOutOfBoundsException e) {
    System.out.println("Queue is empty!");
}

Спасибо ^^ Но могу ли я что-нибудь сделать, чтобы справиться с этим, прежде чем вызывать fn в main?

Ahmed Usama 10.09.2018 05:06

Нет, если вы не вернете значение 0 или что-то подобное, чего вы сказали, что не хотите делать. Проблема в том, что как только вы объявляете возвращаемый тип, вы ДОЛЖНЫ вернуть этот тип. Это означает, что если вы обрабатываете исключение внутри этого метода, вам все равно придется что-то возвращать, а что вы вернете, если вы не смогли ничего удалить из очереди? Итак, это параметры - обработать исключение внутри метода и вернуть 0 или значение по умолчанию; или поймать исключение из main. Надеюсь, это поможет.

pseudobbs 10.09.2018 05:10

Другие вопросы по теме