Почему не работает метод проверки на null?

Не понимаю, почему не работает проверка на null.
И почему при вводе в параметр метода isRomanDigit() корректное римское число в мейне, из массива romanNumbers выходит false? Число ввожу такое же, как из массива, но в результате проверки все равно false.

private final String[] romanNumbers = {"I", "II", "III", "IV", "V", "VI", "VII", "VII", "IX", "X"};

 public boolean isRomanDigit(String input) {
        boolean result = false;
        String upperInput = input.toUpperCase();
        if (upperInput != null && !upperInput.isEmpty()) {
            for (int i = 0; i < 10; i++) {
                if (upperInput.equals(romanNumbers[i])) {
                    result = true;
                    System.out.println("резалт " + result + " число " + upperInput);
                } else {
                    System.out.println("резалт фолс число не подходит");
                    return result;
                }
            }
        } else {
            System.out.println("резалт фолс,это пустая строка или налл");
        }
        return result;
    }


public static void main(String[] args) {
        Calc c = new Calc();
        c.isRomanDigit("V");
    }

Ответы (1 шт):

Автор решения: Arty Morris

У вас число находится, но выполнение цикла продолжается. Нужно прервать цикл и вернуть true

 public boolean isRomanDigit(String input) {
        if (input.equals("") | input == null){
            return false;
        }
        String upperInput = input.toUpperCase();
            for (int i = 0; i < 10; i++) {
                if (upperInput.equals(romanNumbers[i])) {
                    System.out.println("резалт " + result + " число " + upperInput);
                    return true;
                }
        }
        return false;
    }
→ Ссылка