Java - диапазон значений - PullRequest
0 голосов
/ 18 июня 2019

Я работаю над сценарием Java 1.8, в котором я пытаюсь установить диапазон вводимых пользователем номеров, в котором пользователь может вводить только цифры от 0 до 1000. Я пытаюсь установить диапазон с помощью приведенного ниже кода, но это все еще позволяет мне (пользователю) вводить число больше 1000.

} while (0 < digit && digit < 1000);

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

Приведенный выше код не выдает никаких ошибок, поэтому я озадачен тем, почему он по-прежнему позволяет мне вводить число больше 1000. Я новичок в Java, поэтому возможно некоторая логическая ошибка ...

Это мой полный код ниже. Цель сценария - ввести число от 0 до 1000 и заставить систему вычислить сумму его цифр. Он успешно вычисляет сумму, но когда я ввожу число больше 1000, сумма равна нулю ...

        System.out.println("Enter a number between 0 and 1000.");
        int num = 4567;
        int sum = 0;
        while (num > 0 && num <1000) {
            sum = sum + num % 10;
            num = num / 10;
        }
        System.out.println("The sum of the digits is " + sum); 

1 Ответ

1 голос
/ 18 июня 2019

Чтобы принять пользовательский ввод, требующий, чтобы он находился в диапазоне 1..999, вам понадобится что-то вроде этого:

do {
    num = // get the input
} while (num < 1 || num > 999);

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

while (num > 0) {
    sum += num % 10;
    num /= 10;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...