В этой функции, если 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;
}
}
@faris Понял, спасибо :) Но это значит, что мне не нужно использовать "это". в любой ситуации в java?
Есть и другие ситуации, когда вы можете использовать ключевое слово this, например, для установки глобальных переменных в конструкторе или использования объекта класса в качестве параметра в другом методе, но что касается вызова метода в том же классе, что и вы, я могу ' Я не думаю о том времени, когда вам это может понадобиться.
public void dequeue()
{
if (this.isEmpty()){
System.out.println("Queue is Empty !");
}
else{
first++;
int x = arr[first];
}
}
Это должно напечатать строку, если первый оператор оценивает истину, не требуя от вас ничего возвращать.
Я думал об этом, но я хочу вернуть исключенное из очереди значение, если второй случай верен, также мне нужно научиться обрабатывать исключения w в таких случаях
В вашем случае программа будет нормально работать, если вы удалите оператор return. Но лучше использовать оператор return, чтобы избежать ненужных сложностей.
Предположим, необходимо добавить оператор возврата, как я справлюсь с этой ситуацией?
Вместо возврата 0 создайте настраиваемое исключение, например QEmptyException, а затем обработайте это исключение при вызове функции dequeue ().
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?
Нет, если вы не вернете значение 0 или что-то подобное, чего вы сказали, что не хотите делать. Проблема в том, что как только вы объявляете возвращаемый тип, вы ДОЛЖНЫ вернуть этот тип. Это означает, что если вы обрабатываете исключение внутри этого метода, вам все равно придется что-то возвращать, а что вы вернете, если вы не смогли ничего удалить из очереди? Итак, это параметры - обработать исключение внутри метода и вернуть 0 или значение по умолчанию; или поймать исключение из main. Надеюсь, это поможет.
Небольшой совет: вы можете сказать if (isEmpty ()), поскольку вы работаете в том же классе, что и метод isEmpty (). this.method () почти никогда не нужен