Hytale Modding
Основи Java

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
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++) {
        // Код тут
    }
}

Намагайтеся уникати глибоко вкладених циклів під час обробки великих обсягів даних.