JavaRush /Курсы /Java Syntax Pro /Примеры использования цикла while

Примеры использования цикла while

Java Syntax Pro
4 уровень, 2 лекция
Открыта

1. Подсчет суммы чисел с использованием цикла while

Давайте напишем программу, которая вводит числа с клавиатуры (пока пользователь вводит что-то похожее на числа) и выводит на экран их сумму. Вот как будет выглядеть код такой программы (приводим только код внутри метода main).

Код Пояснение
Scanner console = new Scanner(System.in);
int sum = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   sum = sum + x;
}
System.out.println(sum); 
Создаем объект Scanner для чтения данных с консоли.
В переменной sum будем хранить сумму чисел.
Пока в консоли вводят целые числа

считываем очередное число в переменную x.
Добавляем x к сумме чисел (переменная sum).

Выводим подсчитанную сумму на экран.

2. Максимум введенных чисел с использованием цикла while

Вторая программа тоже будет считывать числа с клавиатуры (пока пользователь вводит что-то похожее на числа), но на экран нужно будет вывести наибольшее из введенных чисел. Вот как будет выглядеть код такой программы (приводим только код внутри метода main).

Код Пояснение
Scanner console = new Scanner(System.in);
int max = 0;
while (console.hasNextInt())
{
   int x = console.nextInt();
   if (x > max)
     max = x;
}
System.out.println(max); 
Создаем объект Scanner для чтения данных с консоли.
В переменной max будем хранить максимум чисел.
Пока в консоли вводят целые числа

считываем очередное число в переменную x.
Сравниваем x и max. Если x больше max,
обновляем максимум.

Выводим найденный максимум чисел на экран.

Тут есть интересный момент: если все введённые числа с клавиатуры будут отрицательными, программа выведет на экран число 0. Что, собственно говоря, неверно.

Поэтому стартовое значение max должно быть как можно меньше.

Вариант 1:

Можно присвоить ему -2000000000 (минус два миллиарда). Что уже довольно неплохо.

Вариант 2:

Присвоить самое маленькое значение типа int. Для него есть специальная константа: Integer.MIN_VALUE;

Вариант 3:

Еще лучше — инициализировать max первым введенным числом. Это лучший вариант. Но это можно сделать только в том случае, если по условию задачи пользователь должен ввести хотя бы одно число.


Комментарии (908)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
herewegoagain Уровень 10
3 октября 2026
Уже есть опыт работы в разработке. Решил повторить всю элементарную базу перед тем, как с Java EE на Spring пересяду. Думал, за день 10 лвлов пробегу, как родные. Новички, не расстраивайтесь, что быстро не решили 3-ю задачу... Я тоже её с первой попытки не решил :D
Euraks Уровень 27
19 сентября 2026
в задаче Минимум из введенных чисел условие

Если введен только один нечисловой символ, 
то вывести на экран максимальное значение числа типа int.

означает что если не ввели ни 1 числа, то вывести нужно максимальный int их возможных
No “Nik0la” Name Уровень 5
3 июля 2026
Прочитал комментарии. Пишут последняя "сложная". Ну не знаю)) Главная логика в том, что вам надо объявить две переменных min1, min2 и когда значение с консоли меньше min1, вы присваиваете min2 прошлое значение min1, а в min1 записываете x. (min2 = min1; min1 = x;) Удачи, ребят
Anonymous #6463865 Уровень 11
25 апреля 2026

// Задача 4-5-2: Cчитывать целые числа с клавиатуры до тех пор, пока не будет введено что-то
// другое: например, строка или символ. Выведи на экран максимальное четное число из введенных.
// Если введено несколько таких чисел, необходимо вывести любое из них.
Scanner console = new Scanner(System.in);
int max = Integer.MIN_VALUE;
while (console.hasNextInt()) {
    int x = console.nextInt();
    max = (x % 2 == 0) && (x > max) ? x : max;
}
System.out.println(max);
Anonymous #6463865 Уровень 11
25 апреля 2026

        // Задача 4-5-1: Надо считывать целые числа с клавиатуры до тех пор, пока не будет введено что-то
        // другое: например, строка или символ. Выведи на экран минимальное число из введенных. Если
        // введено несколько таких чисел, необходимо вывести любое из них.
        Scanner console = new Scanner(System.in);
        int min = Integer.MAX_VALUE;
        while (console.hasNextInt()) {
            int x = console.nextInt();
            min = min < x ? min : x;
        }
        System.out.println(min);
Anna Klushkina Уровень 47
3 января 2026
Первая hard задача!! 👀
Strangelove Strangelove Уровень 17
3 января 2026
Решил задачу с 20 попытки)) Подсказка - пишите System.out.println(переменная) в самом цикле, чтобы понять, что у вас пошло не так.
Agurez Gaming Уровень 7
12 ноября 2025
Отличный байт для покупки ментора, я про задачу 3
R Уровень 6
9 октября 2025
Долго возвращался в темп, теперь идет тяжелее чем в момент, когда ежедневно учил, лучше не останавливайтесь не на один день только если не на перерыв конечно!
AbashkinV Уровень 5
29 сентября 2025
Для себя вывел такую формулу: 1. Прочитать задачу 2. Понять что хотят 3. Прочитать требования 4. Окончательно понять что хотят 5. С этим пониманием на пару писать код 6. Профит Пока работает безотказно, ошибки допускаю по невнимательности или из-за того, что не заучил команды (например, вместо hasNextInt написал hasNewInt T_T) Успехов, братья!