Що таке цикли
Програма, написана мовою Java, складається з певного коду. Зазвичай він виконується послідовно: рядок за рядком, зверху вниз. Але є й такі конструкції коду, які змінюють лінійне виконання програми. Їх називають керівними конструкціями.
Цикли з передумовою: умова виконання визначається перед першою ітерацією.
Цикли з післяумовою: умова виконання визначається після першої ітерації (тому вони завжди виконуються мінімум один раз). Корисні, коли потрібно виконувати якусь дію, поки не реалізується якась умова: наприклад, зчитувати введення користувача, поки він не введе слово "stop".
Цикли з лічильником: кількість ітерацій визначається змодельованим лічильником. В умові циклу задається його початкове і кінцеве значення. Кожну ітерацію лічильник нарощується. Ми можемо заздалегідь визначити кількість ітерацій.
Ці цикли бувають корисними, коли потрібно перебрати всі елементи в якійсь колекції. Цикли з лічильником називають "циклами для...". "Для кожного елемента деякої колекції здійснити такі дії".
Допустимими є випадки, коли виконання циклу можна перервати до досягнення його умови. Наприклад, якщо у нас є колекція зі 100 чисел і нам необхідно зрозуміти, чи містить вона негативні числа. Ми можемо почати перебір усіх чисел, використовуючи цикл "для". Але коли ми знайдемо перше від'ємне число, нам не обов'язково перебирати решту чисел. Ми можемо перервати виконання циклу, якщо його подальше виконання не має сенсу. Подібні ситуації називають перериванням циклу.
Безумовні цикли – цикли, які виконуються нескінченно. Наприклад: "Поки 1=1, друкувати "1=1"". Така програма буде виконуватися, поки її вручну не перервуть.
Ці цикли теж бувають корисними, коли використовуються разом із перериванням циклу "зсередини". Використовуйте їх обережно, щоб не спровокувати зависання програми.
Детальніше з циклами в мові програмування Java можна познайомитися на 4-му рівні курсу JavaRush. Зокрема, з циклами while і for.
Цикли в Java
Тепер розглянемо цикли в Java. У цій мові програмування їх є кілька типів:- while – цикл із передумовою;
- do..while – цикл із післяумовою;
- for – цикл із лічильником (цикл для);
- for each... – цикл "для кожного..." - різновид for для перебирання колекції елементів.
Цикл while
Цей цикл у Java структурно має такий вигляд:
while (expression) {
statement(s)
}
Тут: - expression – умова циклу, вираз, який має повертати boolean значення.
- statement(s) – тіло циклу (один або більше рядків коду).
public class WhileExample {
public static void main(String[] args) {
int countDown = 10;
while (countDown >= 0) {
System.out.println("До старту: " + countDown);
countDown --;
}
System.out.println("Поїхали!");
}
}
Виведення:
while (true) {
// тіло циклу
}
Щоб перервати виконання циклу, використовується оператор break.
Наприклад:
public class WhileExample {
public static void main(String[] args) {
int count = 1;
while (true) {
System.out.println("Рядок №" + count);
if (count > 3) {
break;
}
count++; // Без нарощування виконання циклу буде вічним
}
}
}
Виведення:
Цикл do..while
Структура do... while виглядає так:
do {
statement(s)
} while (expression);
Тут: - expression – умова циклу, вираз, який має повертати boolean значення.
- statement(s) – тіло циклу (один або більше рядків коду).
public class DoWhileExample {
public static void main(String[] args) {
int count = 1;
do {
System.out.println("count = " + count);
count ++;
} while (count < 11);
}
}
Виведення:
Цикл for
Цей Java-цикл має такий вигляд:
for (initialization; termination; increment) {
statement(s)
}
Тут: - initialization – вираз, який ініціалізує виконання циклу. Виконання відбувається тільки раз на початку циклу. Найчастіше в цьому виразі ініціалізують лічильник циклу
- termination – boolean вираз, який регулює закінчення виконання циклу. Якщо результат виразу дорівнюватиме false, цикл for перерветься.
- increment – вираз, який виконується після кожної ітерації циклу. Найчастіше в цьому виразі відбувається інкрементування або декрементування змінної лічильника.
- statement(s) – тіло циклу.
// нескінченний цикл
for ( ; ; ) {
// код тіла циклу
}
Приклад циклу for:
public class ForExample {
public static void main(String[] args) {
for (int i = 1; i < 6; i++) {
System.out.println("Рядок №" + i);
}
}
}
Виведення:
Цикл for each
Цей цикл Java – різновид циклу for для ітерації колекцій і масивів. Структура for each має такий вигляд:
for (Type var : vars) {
statement(s)
}
Тут: - vars – змінна, наявний список або масив
- Type var – визначення нової змінної того ж типу (Type), що й колекція vars
public class ForExample {
public static void main(String[] args) {
String[] daysOfWeek =
{ "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя" };
for (String dayOfWeek : daysOfWeek) {
System.out.println(dayOfWeek);
}
}
}
Цикли Java вивчають на курсі JavaRush на четвертому рівні квесту Java Syntax. Спробуйте свої сили в розв'язанні задач за цією темою :)
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ