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 первым введенным числом. Это лучший вариант. Но это можно сделать только в том случае, если по условию задачи пользователь должен ввести хотя бы одно число.


Комментарии (909)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
No “Nik0la” Name Уровень 5
3 июля 2026
Прочитал комментарии. Пишут последняя "сложная". Ну не знаю)) Главная логика в том, что вам надо объявить две переменных min1, min2 и когда значение с консоли меньше min1, вы присваиваете min2 прошлое значение min1, а в min1 записываете x. (min2 = min1; min1 = x;) Удачи, ребят
Anonymous #6463865 Уровень 9
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 Уровень 9
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 Уровень 66
3 января 2026
Первая hard задача!! 👀
Strangelove Strangelove Уровень 15
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) Успехов, братья!
Anonymous #3397071 Уровень 4
10 сентября 2025
в очередной раз убеждаюсь что обучение джава с нуля на этом сайте что-то невозможное, самому дойти до решения задачи практически невозможно else if (num > second_max && num != max_number) в голове картину кода я представил, но дойти до такой формулы я не смог
Entropie Уровень 8
20 сентября 2025
У меня, на мой взгляд, понятней решение: Scanner scan = new Scanner(System.in); int i, min = Integer.MAX_VALUE, min2 = min; while (scan.hasNextInt()){ i = scan.nextInt(); if (i < min){ min2 = min; min = i; } else if ((min < i) && (i < min2)) min2 = i; } System.out.println(min2); Обучение программированию можно разделить на 2 части: обучение самому языку и прокачка логического мышления. Если вам не хватает 2-го, то решайте больше аналогичных задач, прежде, чем переходить на новую тему.
DanyaGold Уровень 5
1 сентября 2025
В 3 задаче если второго минимального числа нет, то вывести нужно MAX_VALUE