Как остановить Looping, когда вход нуль (для INT) Java

голоса
-1

я просто сделал свою собственную программу для остановки цикла , когда вход null, но эта программа может быть успешной только с String.

Scanner scan = new Scanner(System.in);
String name =  ;
while(true) {
    name = scan.nextLine();
    if(name.equals()) {
       break;
    }
}

поэтому, если вы ничего не положил на String nameвас просто нажмите ввести на клавиатуре , чем Ассоль петли быть остановки.

но при попытке изменить строку в целое, есть одна проблема, которую вы получите.

Scanner scan = new Scanner(System.in);
int name =  ;
while(true) {
    name = Integer.parseInt(scan.nextLine());
    if(name....) {
       break;
    }
}

что должно быть заполнить if?

Задан 20/10/2018 в 05:24
источник пользователем
На других языках...                            


4 ответов

голоса
1

Одно из решений заключается в использовании scan.nextInt()

Это сканирует следующий маркер ввода в виде не int

Ответил 20/10/2018 в 05:42
источник пользователем

голоса
0

Я вижу одну проблему здесь. Вы не можете инициализировать имя Int = "«; ИНТ должен иметь числовое значение в диапазоне от отрицательного к положительному 2³¹ 2³¹-1, но вы не можете установить значение NULL, как это примитивный тип данных.

Всякий раз, когда вы используете scan.nextInt (); программа не будет продолжаться до тех пор, пока ввести номер. Если вы хотите разорвать петлю, просто нажав на кнопку ввода, попробуйте следующее: -

...
int name=0;
while(true) {
    try {
        name = Integer.parseInt(scan.nextLine());
    }
    catch(Exception ex) {
        break;
    }
}

Поскольку имя не может содержать нулевое значение, то будет сгенерировано исключение. Программа будет поймать это исключение и выйти из цикла.

Если вы не знаете, «Обработка исключений», я предлагаю вам посмотреть в Интернете и узнать, потому что это очень полезный блок для использования в программах.

Ответил 20/10/2018 в 06:19
источник пользователем

голоса
0

Вы можете обращаться со своими входами как строки, даже если они являются числовыми значениями. Это значит, ваш первый блок кода будет работать, если вам нужно всего лишь найти пустое значение после того, как поток входных данных (независимо от того, что они являются: а или 123).

Ответил 20/10/2018 в 05:41
источник пользователем

голоса
0

Там не обязательно здесь.

То есть все дело: ты один определить, что должно произойти.

Первое, что нужно понять, это потенциальный диапазон значений Int. Речь идет о положительных и отрицательных числах здесь.

Таким образом , один из вариантов может быть , чтобы остановить на 0. Или на -1.

Но это вещь: как только вы отвернетесь от строк (которые могут быть пустыми, пустым или содержать все виды информации) к чему-то более конкретный, вы потеряете несколько степеней свободы.

Таким образом, реальный ответ: нет «общего» ответа здесь. Если вы настаиваете на поворот пользовательского ввода в целочисленное значение, то вы ограничены в диапазон возможных значений Int. И если вы не определить какое - нибудь правило , такие как «любые отрицательные числа означает , что остановить », вы не имеете никакого способа знать , когда остановиться.

Ответил 20/10/2018 в 05:36
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more