— Привіт, Аміго!
Сьогодні я розповім тобі про деякі зручні речі в роботі з циклами.
Перша така річ – це ключове слово break. Якщо в тілі циклу написати таку інструкцію, то при її виконанні цикл одразу завершиться. Приклад:
Приклад | Результат роботи циклу: |
---|---|
|
0 1 2 3 4 5 6 |
— А break можна використовувати лише у циклі?
— Так. break можна використовувати лише у циклі. При виконанні команди break цикл відразу завершується.
— Ок. Зрозуміло.
— Чудово. Тепер друга команда – це ключове слово continue. Його теж можна використовувати лише у циклі. При виконанні цієї команди відразу починається нова ітерація циклу. Інакше кажучи, просто пропускається весь код тіла циклу.
Приклад:
Приклад | Результат роботи циклу: |
---|---|
|
1 3 5 7 9 |
— Тобто. як тільки програма доходить до виконання команди continue всередині циклу, вона перестає виконувати код у ньому?
— Ні. Дивись. Цикл – це коли ми виконуємо один і той самий код кілька разів. У прикладі вище – ми цикл від 0 до 9 – тобто. тіло циклу виконається 10 разів. Так?
— Так.
— Одне таке виконання коду тіла циклу називається ітерацією циклу. Наш цикл складається з 10 ітерацій – десяти виконань коду у його тілі.
— Так, це ясно.
— Команда continue передчасно завершує поточну ітерацію — код усередині циклу пропускається та починається нова ітерація.
Ось тобі ще приклад:
ArrayList list = new ArrayList();
for (Object o: list)
{
if (o==null) continue;
System.out.println(o.toString());
}
У цьому прикладі ми виводимо на екран рядкове представлення всіх об'єктів, які у списку list. Але пропускаємо всі об'єкти, які дорівнюють null.
— Так, зрозуміло. Дуже зручна річ, я дивлюся.
— Ага. Ще хочу розповісти тобі про мітки. Вони рідко використовують у Java, т.к. часто порушують красу логіки програми. Але ти можеш зустріти їх десь у коді. Тож краще нехай ти від мене почуєш про них, ніж десь у дворі.
Давним-давно в коді дозволялося стрибати з будь-якої рядки на будь-яку. Для цього використовувалися мітки та оператор goto. Ось як це виглядало:
System.out.println("Світ");
label: System.out.println ("Праця");
System.out.println("Май");
goto label;
У цьому прикладі, після виконання команди goto label, програма стрибала на рядок, позначений міткою label.
Потому всі дружно прозріли і вирішили не використовувати оператораgoto. У Java його досі немає, але ключове слово goto зарезервовано. Чи мало…
— Тобто. ні goto, ні міток у Java немає?
— Оператора goto немає, а мітки є!
— Це як це?
— Мітки можна використовувати в Java разом із командами continue і break. Вони використовуються, коли маєш багато вкладених циклів.
Наприклад, у тебе 5 вкладених циклів, і ти хочеш, при виконанні певної умови, вийти з трьох із них, але не з усіх. Мітки дозволяють зробити це красиво:
label1: for (int i=0;i<10;i++)
label2: for (int j=0;j<10;j++)
label3: for (int k=0;k<10;k++)
if (i==j && j==k)
break label2;
У цьому прикладі, під час виконання команди break, ми вийдемо не з циклу зі змінною k, та якщо з циклу позначеного міткою label2 – тобто. вийдемо відразу з двох циклів k та j.
— І як часто це використовується?
— Якщо чесно, то не часто, але мало. Може, зустрінеш десь. Це основи синтаксису – це треба знати!
— Ок. Дякую, Білаабо.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ