Задать вопрос
Go_od1Man
@Go_od1Man

Новый метод выдаёт много true/false с последующей ошибкой "Exception in thread «main» java.lang.StackOverflowError". Как исправить?

Хочу написать метод isNegative(), который принимает число и проверяет, является ли оно отрицательным/положительным.
После компиляции код выдаёт штук эдак 5000 false и ещё тысячу "at Learning6.isNegative(Learning6.java:14)"

В чём может быть проблема?

public class Learning6 {
    public static void main(String[] args) {
        isNegative(-50);

    }

    public static boolean isNegative(int number) {
        if (number < 0) {
            System.out.println("false");
        } else {
            System.out.println("true");
        }
            return isNegative(number);
    }
  • Вопрос задан
  • 199 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 3
xez
@xez Куратор тега Java
TL Junior Roo
Проблема в том, что метод бесконечно вызывает сам себя безо всяких условий.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
Метод бесконечно вызывает сам себя до исчерпания ресурсов виртуальной машины. Очевидно, делать этого не надо и тогда всё заработает.
Ответ написан
Комментировать
BorLaze
@BorLaze
Java developer
"Компьютер делает не то, что вы хотели, а то, что вы приказали" :-)))

Замени return isNegative(number); на return (number < 0); і буде тобі щастя.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы