JavaRush/Курси/Java Syntax Zero/Приклади використання циклу while

Приклади використання циклу while

Відкрита

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 першим уведеним числом. Цей варіант —найкращий. Однак це можна зробити тільки тоді, коли за умовою задачі користувач має ввести хоча б одне число.

4
Задача
Java Syntax Zero,  4 рівень,  5 лекція
Недоступна
Мінімум серед уведених чисел
Мінімум серед уведених чисел
4
Задача
Java Syntax Zero,  4 рівень,  5 лекція
Недоступна
Максимум серед уведених чисел
Максимум серед уведених чисел
4
Задача
Java Syntax Zero,  4 рівень,  5 лекція
Недоступна
Друге мінімальне число серед уведених
Друге мінімальне число серед уведених
Коментарі (31)
  • популярні
  • нові
  • старі
Щоб залишити коментар, потрібно ввійти в систему
DeeBill
Рівень 5
11 вересня 2025, 20:54
Десь пів годинки не міг зрозуміти, чому мій код не працює(Перше завдання). Помилок ніде не підсвічене. Повністю переписав навіть зразки з лекції, а все те саме. Доки уважніше не прочитав. Компілятор спрацьовує повноцінно ЛИШЕ ТОДІ, КОЛИ ВВЕДЕШ ЗНАЧЕННЯ "НЕ Int"!!! Дурбелик:)
Владислав
Рівень 1
3 червня 2025, 18:04
Последняя задача полная дичь. Не мог вообще догадаться. Открыл решение и увидел точно то же что и написал. В конечном итоге давало все равно ошибку. После чего доперло что не так сравнивал переменные.... Тяжеловато было. Но мне очень нравятся такие моменты.
Антон
Рівень 63
19 серпня 2024, 15:51
Задача цікава умовою. Трохи збивало це: "Якщо введено менше двох цілих чисел, то таку ситуацію обробляти не потрібно, а програма може завершитися з помилкою.". Мінімально стисле рішення: - Вводимо дві змінні з клавіатури і визначаємо мін та мін2. - У циклі підкидаємо по одній змінній і міняємо значення мін та мін2. за потреби. - Перевіряємо що у сканері, якщо не число - виходимо з циклу.
Станіслав
Рівень 20
27 березня 2024, 21:23
Вибачте... Але може я щось не розумію... За умовами третього завдання программа повинна виводити друге за величиною ціле число після мінімального серед уведених з клавіатури. За підказками: Приклад уведення: 8 4 // мінімальне число 7 4 // мінімальне число 5 // друге за величиною число (друге мінімальне) 9 5 // друге за величиною число (друге мінімальне) exit Приклад виведення: 5 Тобто з двох пар мінімальних чисел треба виводити більше. Але код, який був прийнятий за вірний (який я був вимушений подивитись у рішенні, тому що не мог вирішити завдання), цей код видає з двох пар найменше.
Anonymous #3312433
Рівень 5
29 липня 2024, 13:38
Ти тепер 20 рівень. Потужний. Що скажеш з приводу свого коментаря, чо так?
Anonymous #3425794
Рівень 1
19 березня 2024, 11:50
Задачі дуже заплутані
ShoorF
Рівень 4
1 березня 2024, 02:56
У першому завдані 5 пункт дуже збиває. я потратив декілька годин намагаючись написати правильний код, але не виходило. Пункт 5 : Якщо введено лише нечисловий символ, слід вивести на екран максимальне значення числа типу int.. У вашому рішенні цей пункт зовсім відсутній, Ваш код не виводить мах заначення.
ZedCj
Рівень 11
Expert
17 червня 2024, 07:03
int min = Integer.MAX_VALUE;
Гаркін
Рівень 14
9 лютого 2024, 19:24
Ой еее.... нагаматись отримати "Мегатрон" це важкувато-погано..... треба було знайти максимально ПАРНЕ число! а не "серед чисел знайти пару, яка буде максимальною"... Все. На сьогодні з програмуванням усе.
Bilan Maksym
Рівень 43
Expert
12 березня 2023, 09:32
Устал думать потому сделал так public class Solution { public static void main(String[] args) { //напишіть тут ваш код TreeSet<Integer> mySet = new TreeSet<>(); Scanner scanner = new Scanner(System.in); while (scanner.hasNextInt()) { mySet.add(scanner.nextInt()); } List<Integer> list=new ArrayList<>(mySet); System.out.println(list.get(1)); } }
theylovevalera Backend Developer в шукаю роботу
12 березня 2023, 20:22
Просте рішення для 4 рівня🙂
Василь trainee в Kindgeek
3 липня 2023, 10:21
а що ти зі знаннями про колекції робиш на цьому рівні? Треба співбесіду вже проходити на джуна Java)
Михаил
Рівень 28
28 листопада 2023, 18:31
Походу, это GPT помог
bogdan kravchuk
Рівень 11
13 лютого 2023, 15:43
Середню задачу робив і думав про неї 3 дня. ніяк не міг зрозуміти як її правильно будувати. коли відрив код виявилося що я не те робив. Я робив програму яка виводила б на екрак найбільше парне чисто, маючи наувазі( 3 4 6 8 2 4 7 9 5 4 3 9) то буде число девять 9 бо ми його ввели парне число разів. і я так робив задачу. А насправді треба було щоб на екрані показало найбільше чистояке ділиться на 2. Це набагато легше ніж то шо я робив....
Anonymous #3270882
Рівень 5
1 березня 2023, 07:49
Проте ви засвоїли гарний урок. Програміст зазвичай обдумує код довше, аніж його пише
Kostiantyn Bogatyrchuk Двірник в УМАНСЬКЕ РЕУ №3, КПExpert
8 січня 2023, 21:11
о тримую помилки: -Програма повинна виводити на екран друге мінімальне число серед уведених цілих чисел. -Якщо введено кілька других мінімальних чисел, потрібно вивести будь-яке з них. хоча у мене у відповіді виходить друге мінімальне число
package ua.javarush.task.pro.task04.task0410;

import java.util.Scanner;

/*
Друге мінімальне число серед уведених
*/

public class Solution {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int stInt;
        int ndInt;
        int min1 = Integer.MAX_VALUE;
        int min2 = Integer.MAX_VALUE;
        int min3 = 0;
        while (scan.hasNextInt()){
            if (scan.hasNextInt()){
                stInt = scan.nextInt();
                min1 = stInt < min1 ? stInt : min1;
                if (scan.hasNextInt()){
                    ndInt = scan.nextInt();
                    min2 = min2 > ndInt ? ndInt : min2;
                }
                 else {
                     min3 = min1 < min2 ? min2 : min1;
                     System.out.println(min3);
                     break;
            }}
            else {
                min3 = min1 < min2 ? min2 : min1;
                System.out.println(min3);
                break;
            }
         }
    }
}