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


Комментарии (906)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Анна Клушкина Уровень 13
3 января 2026
Первая hard задача!! 👀
Strangelove Strangelove Уровень 13
3 января 2026
Решил задачу с 20 попытки)) Подсказка - пишите System.out.println(переменная) в самом цикле, чтобы понять, что у вас пошло не так.
Agurez Gaming Уровень 7
12 ноября 2025
Отличный байт для покупки ментора, я про задачу 3
ramza Уровень 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
28 августа 2025
3 задача. Мозг закипел еще на стадии задачи) 2 часа разбора решения и непонятная тоска по итогу от того что понимаю как тяжко будет впереди. Благо есть возможность посмотреть верное решение и разобрать по полочкам.
Big198801 Уровень 33
16 августа 2025
третья задача заставила мой мозг пошевелиться, фух. Хотя вроде решение плевое, но все же))
Илья Уровень 4
12 августа 2025
Прочитал ТЗ третьей задачки и уже не хочется к ней приступать, совсем не понятно что нужно сделать.