04 - Керування потоком за допомогою циклів
Дізнайтеся, як ефективно повторювати код за допомогою циклів у Java
Цикли дозволяють повторювати код, не переписуючи його знову і знову. Вони необхідні для обробки колекцій, генерації світів та оновлення ігрових об'єктів.
Цикл while
Повторює код, поки умова є істинною:
int countdown = 5;
while (countdown > 0) {
System.out.println(countdown);
countdown--;
}
System.out.println("Старт!");Структура
while (умова) {
// код для повторення
}Завжди переконайтеся, що умова циклу зрештою стане хибною (false), інакше ваша програма буде працювати нескінченно!
int x = 0;
while (x < 10) {
System.out.println("Застряг!");
// Забули збільшити x!
}Цикл do-while
Схожий на цикл while, але завжди виконується принаймні один раз:
int health = 0;
do {
System.out.println("Спроба відродження...");
health = 100;
} while (health <= 0);Цикл for
Найкраще підходить, коли відомо, скільки разів потрібно повторити:
for (int i = 1; i <= 5; i++) {
System.out.println("Рівень " + i);
}Структура
for (ініціалізація; умова; оновлення) {
// код для повторення
}for (int i = 0; i < 10; i++) {
// ^ ^ ^
// Початок Кінець Крок
}- Ініціалізація: int i = 0 - Виконується один раз на початку
- Умова: i < 10 - Перевіряється перед кожним циклом
- Оновлення: i++ - Виконується після кожного циклу
Оператор break
Ви можете достроково вийти з циклу за допомогою оператора break:
for (int i = 1; i <= 10; i++) {
if (i == 6) {
break; // Вихід із циклу, коли i дорівнює 6
}
System.out.println(i);
}Оператор continue
Для переходу до наступної ітерації використовується оператор continue:
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) {
continue; // Пропускає парні числа
}
System.out.println(i); // Виводить тільки непарні числа
}Вкладені цикли
Ви можете розміщувати цикли всередині інших циклів:
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 2; j++) {
System.out.println("i: " + i + ", j: " + j);
}
}Будьте обережні з вкладеними циклами! Вони можуть значно уповільнити роботу вашої модифікації.
// Це виконується 1 000 000 разів!
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
// Код тут
}
}Намагайтеся уникати глибоко вкладених циклів під час обробки великих обсягів даних.