пытаюсь вернуть мой вопрос l oop, когда пользователь вводит неверный ввод - PullRequest
0 голосов
/ 20 апреля 2020

Я чувствую, что у меня почти есть это право. ошибка говорит о том, что (! isinputValid) не инициализируется. пытаясь понять, почему это так и как это изменить, чтобы мой вопрос повторялся с неверными данными (более 24).

        boolean isInputValid;

        // The license plate must be a string and imported using next(), max 24hr parking
        for (int i = 0; i < licensePlates.length; i++) {
            System.out.println("Auto" + (i + 1));
            System.out.print("      Kenteken: ");
            licensePlates[i] = input.next();
            System.out.print("      Geparkeerde uren (max. 24): ");
            parkingTime[i] = input.nextInt();
            if (parkingTime[i] > 24){       // the max time for parking is 24hr
                isInputValid = false;
                System.out.println("      De parkeerduur kan maximaal 24 uur zijn");
            }
            while (!isInputValid);
        }

    }

}

1 Ответ

0 голосов
/ 20 апреля 2020

Сделайте это следующим образом:

do {
    isInputValid = true;
    System.out.print("      Geparkeerde uren (max. 24): ");
    try {
        parkingTime[i] = Integer.parseInt(input.nextLine());
        if (parkingTime[i] > 24) { // the max time for parking is 24hr
            isInputValid = false;
            System.out.println("      De parkeerduur kan maximaal 24 uur zijn");
        }
    } catch (NumberFormatException e) {
        isInputValid = false;
    }
} while (!isInputValid);

Также обратите внимание, что я использовал nextLine() вместо nextInt(). Проверьте Сканер пропускает nextLine () после использования next () или nextFoo ()? , чтобы узнать больше об этом.

...