Как получить введенный пользователем номер для выхода из цикла?

Я пытаюсь заставить пользователя вводить любое число от 0 до 10 неограниченное количество раз, пока он не захочет остановиться. Они останавливаются, вводя значение -1. До сих пор я был в состоянии создать то, что происходит, когда они вводят правильное значение, но когда они вводят -1 (что является недопустимым значением в цикле while), программа знает, что это неверно. Все, что я ищу, - это чтобы программа исключала -1 для возможного неверного ввода, и чтобы программа перестала запрашивать больше ввода. Вот мой код до сих пор:

    int userInput=0;
    System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive).");
    System.out.println("When you want to stop, type and enter -1.");


    while (userInput <= 10 && userInput >= 0)
    {
        userInput=Integer.parseInt(br.readLine());

        while (userInput > 10|| userInput < 0)
        {
            System.out.println("That number is not in between 0 and 10. Please enter a correct number.");
            userInput=Integer.parseInt(br.readLine());
        }
        sum=sum+userInput;
        freq++;
    }
    while (userInput == -1)
    {
        System.out.println("You have chosen to stop inputing numbers.");
    }

Извините за мое ограниченное понимание:/

1 ответ

Я бы посоветовал вам делать слишком много с циклами while. Как написано, ты никогда не выберешься из своего первого. Если вы введете число от 0 до 10, он вернется и запросит снова. Если вы добавляете что-то кроме этого, вы нажимаете этот вложенный цикл while, и в итоге вы снова запрашиваете номер. Подумайте о потоке и о том, что вы хотите, чтобы он делал. Вот краткий план того, как это сделать:

System.out.println("Please enter numbers ranging from 0 to 10 (all inclusive).");
System.out.println("When you want to stop, type and enter -1.");
keepgoing = true;
while(keepgoing) {
    userInput=Integer.parseInt(br.readLine());
    if((userInput <= 10 && userInput >= 0) {
        sum=sum+userInput;
        freq++;
    }
    else if(userInput == -1) {
        System.out.println("You have chosen to stop inputing numbers.");
        keepgoing = false;
    }
    else {
        System.out.println("That number is not in between 0 and 10. Please enter a correct number.");
    }
}

По крайней мере, я думаю, что это там. Существуют различные методы для контроля потока вашего кода. Хорошо знать, когда использовать какой.

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