Цикл while
Представьте, что вам нужно вывести числа от 1 до 100. Писать 100 строк System.out.println — глупо. Циклы позволяют повторять действия много раз, написав код один раз.
🔄 Синтаксис while
while — цикл с предусловием. Тело цикла выполняется пока условие истинно. Сначала проверяется условие, потом выполняется тело:
public class WhileLoop {
public static void main(String[] args) {
int i = 1;
while (i <= 5) {
System.out.println(i);
i++; // ОБЯЗАТЕЛЬНО! Иначе бесконечный цикл
}
System.out.println("Готово!");
}
}
Вывод: 1, 2, 3, 4, 5, «Готово!». Цикл выполняется 5 раз, потом условие i <= 5 становится false и цикл заканчивается.
Порядок выполнения:
- Проверить условие
i <= 5 - Если true — выполнить тело цикла
- Вернуться к шагу 1
- Если false — выйти из цикла
🚫 Бесконечный цикл: Если забыть i++, переменная i всегда будет 1, условие 1 <= 5 всегда true, и цикл никогда не закончится. Программа зависнет!
🔢 Счётчик в цикле
// Вывод чисел от 1 до 10
int i = 1;
while (i <= 10) {
System.out.println(i);
i++;
}
// Обратный отсчёт от 10 до 1
int j = 10;
while (j >= 1) {
System.out.println(j);
j--;
}
// Чётные числа от 2 до 20
int n = 2;
while (n <= 20) {
System.out.println(n);
n += 2;
}
➕ Суммирование и подсчёт
public class Summation {
public static void main(String[] args) {
// Сумма чисел от 1 до 100
int sum = 0;
int i = 1;
while (i <= 100) {
sum += i;
i++;
}
System.out.println("Сумма от 1 до 100: " + sum); // 5050
// Подсчёт чётных чисел от 1 до 50
int count = 0;
int n = 1;
while (n <= 50) {
if (n % 2 == 0) {
count++;
}
n++;
}
System.out.println("Чётных чисел от 1 до 50: " + count); // 25
}
}
🔍 Поиск по условию
public class SearchWhile {
public static void main(String[] args) {
// Найти первое число, делящееся на 7 и на 3
int number = 1;
while (true) {
if (number % 7 == 0 && number % 3 == 0) {
System.out.println("Первое число: " + number);
break;
}
number++;
}
// Выведет: 21
}
}
Здесь while (true) — бесконечный цикл, который прерывается через break, когда условие найдено. Это безопасный паттерн, если вы точно знаете, когда выходить.
⚠️ Бесконечный цикл и как его избежать
// ОШИБКА: забыли инкремент
int x = 0;
while (x < 5) {
System.out.println(x);
// x++ забыли! → бесконечный цикл
}
// ОШИБКА: условие всегда true
while (true) {
System.out.println("Навсегда!");
// Нет break → бесконечный цикл
}
// ПРАВИЛЬНО:
int x = 0;
while (x < 5) {
System.out.println(x);
x++;
}
💡 Совет: Всегда проверяйте, что переменная цикла изменяется (инкрементируется/декрементируется) и что условие рано или поздно станет false.
✅ Итоги урока
while (условие) { тело }— цикл с предусловием- Тело выполняется пока условие true
- Всегда изменяйте переменную цикла (иначе — бесконечный цикл)
- Условие должно стать false рано или поздно
while (true) { ... break; }— безопасный бесконечный цикл с выходом
Далее: do-while — цикл с постусловием →
Проверяем понимание
3 вопроса