Цикли в програмуванні дозволяють набору інструкцій виконуватися кілька разів на основі умови. У Java є три типи циклів, які пояснюються нижче:
1. для циклу
Цикл for використовується, коли ми знаємо кількість ітерацій (ми знаємо, скільки разів ми хочемо повторити завдання). Інструкція for містить умову ініціалізації та інкремент/декремент в одному рядку.
приклад: Наведена нижче програма на Java демонструє цикл for, який друкує числа від 0 до 10 в одному рядку.
Java
// Java program to demonstrates the working of for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 10; i++) { System.out.print(i + ' '); } } }
Вихід
0 1 2 3 4 5 6 7 8 9 10
Синтаксис:
for (ініціалізація; умова; збільшення/зменшення) {
// код для виконання
}
На зображенні нижче показано блок-схему циклу for:
Блок-схема циклу for- Умова ініціалізації : тут ми ініціалізуємо використовувану змінну. Він позначає початок циклу for. Можна використовувати вже оголошену змінну або змінну можна оголосити лише локально для циклу.
- Умови тестування: Він використовується для перевірки умови виходу з циклу. Він повинен повертати логічне значення. Це також цикл керування входом, оскільки умова перевіряється перед виконанням операторів циклу.
- Виконання заяви : як тільки умова оцінюється як істинна, оператори в тілі циклу виконуються.
- Приріст/ Зменшення : використовується для оновлення змінної для наступної ітерації.
- Завершення циклу : Коли умова стає хибною, цикл завершується, позначаючи кінець свого життєвого циклу.
Примітка : Існує ще одна форма циклу for, відома як Розширений цикл for або (для кожної петлі).
об'єкт у програмуванні на Java
Розширений цикл for (для кожного)
Цей цикл використовується для перебору масивів або колекцій.
приклад : Наведена нижче програма Java демонструє розширений цикл for (для кожного циклу) для проходження масиву та друку імен.
Java// Java program to demonstrate // the working of for each loop import java.io.*; class Geeks { public static void main(String[] args) { String[] names = { 'Sweta' 'Gudly' 'Amiya' }; for (String name : names) { System.out.println('Name: ' + name); } } }
Вихід
Name: Sweta Name: Gudly Name: Amiya
Синтаксис:
for (змінна типу даних: arrayOrCollection) {
// код для виконання
}
2. Цикл while
Цикл while використовується, коли ми хочемо перевірити умову перед виконанням тіла циклу.
приклад: Наведена нижче програма на Java демонструє цикл while, який друкує числа від 0 до 10 в одному рядку.
Java// Java program to demonstrates // the working of while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; while (i <= 10) { System.out.print(i + ' '); i++; } } }
Вихід
0 1 2 3 4 5 6 7 8 9 10
Синтаксис:
while (умова) {
// код для виконання
}
На зображенні нижче показано блок-схему циклу while:
кластеризація
Блок-схема циклу while- Цикл while починається з перевірки логічної умови. Якщо воно оцінюється як істина, тоді виконуються оператори тіла циклу, інакше виконується перший оператор, наступний за циклом. З цієї причини його також називають контуром керування входом
- Як тільки умова оцінюється як істинна, оператори в тілі циклу виконуються. Зазвичай оператори містять значення оновлення для змінної, яка обробляється для наступної ітерації.
- Коли умова стає хибною, цикл завершується, що означає кінець його життєвого циклу.
3. Цикл do-while
Цикл do-while забезпечує виконання блоку коду принаймні один раз перед перевіркою стану.
приклад : Наведена нижче програма на Java демонструє цикл do-while, який друкує числа від 0 до 10 в одному рядку.
Java// Java program to demonstrates // the working of do-while loop import java.io.*; class Geeks { public static void main(String[] args) { int i = 0; do { System.out.print(i + ' '); i++; } while (i <= 10); } }
Вихід
0 1 2 3 4 5 6 7 8 9 10
Синтаксис:
зробити {
// код для виконання
} поки (умова);
На зображенні нижче показано блок-схему циклу do-while:
Блок-схема циклу do-while- Цикл do while починається з виконання оператора. Перевірка жодного стану з першого разу не проводиться.
- Після виконання операторів і оновлення значення змінної умова перевіряється на істинне чи хибне значення. Якщо воно оцінюється як істинне, починається наступна ітерація циклу.
- Коли умова стає хибною, цикл завершується, що означає кінець його життєвого циклу.
- Важливо відзначити, що цикл do-while виконає свої оператори принаймні один раз, перш ніж будь-яка умова буде перевірена, і тому є прикладом циклу керування виходом.
Поширені помилки циклу та як їх уникнути
Якщо цикли використовуються неправильно, вони можуть викликати підводні камені та помилки, які впливають на читабельність і функціональність коду. Нижче наведено деякі поширені підводні камені циклів:
1. Нескінченні цикли
Це одна з найпоширеніших помилок під час впровадження будь-якого типу циклу: він може ніколи не вийти, тобто цикл виконується нескінченний час. Це трапляється, коли умова з якоїсь причини не виконується.
Типи нескінченних циклів:
- нескінченний цикл для
- нескінченний цикл while
приклад: Тут обидва приклади демонструють нескінченні цикли.
Infinite For Loop// Java program to demonstrate // the infinite for loop import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i--) { System.out.println( 'This loop will run forever'); } } }
Infinite While Loop // Java Program to demonstrate // the infinite while loop import java.io.*; class Geeks { public static void main(String[] args) { while(true) { System.out.println( 'Basic example of infinte loop'); } } }
Вихід: Коли ви запустите обидва наведені вище коди, ви отримаєте помилку TLE (Time Limit Exceeded).
2. Окремі помилки
Помилки Off-by-One виникають, коли цикл виконується на один раз більше або на один раз менше, ніж ви хотіли. Зазвичай це відбувається, коли умова циклу встановлена неправильно.
приклад : Наведена нижче програма Java демонструє помилку Off-by-One, коли цикл виконується 6 разів, а ми очікували, що він запуститься 5 разів.
Java// Java Program to demonstrates Off-by-One Errors import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i <= 5; i++) { System.out.print(i + ' '); } } }
3. Зміна змінних циклу всередині циклу
Коли ми змінюємо умову циклу (наприклад, i) всередині циклу, це може призвести до того, що цикл пропускатиме певні ітерації або поводитиметься так, як ми не очікували. Це може призвести до помилок або неочікуваної поведінки.
приклад : Наведена нижче програма на Java демонструє зміну змінної циклу всередині циклу, що змушує цикл пропускати певні ітерації та поводитися неочікувано.
Java// Java program demonstrates // modification in i variable import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 5; i++) { if (i == 2) { // Modifies the loop variable and skips // the next iteration i++; } System.out.println(i); } } }
4. Тіло порожнього циклу
Порожнє тіло циклу виникає, коли цикл записується для повторення, але не виконує жодних операцій усередині циклу. Запуск циклу без будь-яких корисних операцій у ньому може призвести до плутанини.
приклад: Наведена нижче програма Java демонструє порожнє тіло циклу.
Java// Java program to demonstrates Empty loop body import java.io.*; class Geeks { public static void main(String[] args) { for (int i = 0; i < 10; i++) { // Empty body no operations } } }
Для цього не буде згенеровано вихідних даних, оскільки тіло циклу порожнє.
Зведена таблиця
Тип петлі | Коли використовувати | Перевірка стану | Виконується принаймні один раз? організація та архітектура комп'ютера |
|---|---|---|---|
для циклу | Коли вам потрібні точні ітерації | Перед тілом циклу Він називається Entry-controlled. | немає |
цикл while | Коли спочатку потрібно перевірити стан. | Перед тілом циклу Він називається Entry-controlled. | немає |
цикл do-while | Коли потрібно хоча б раз пробігти | Після тіла циклу. Він називається Exit-controlled. | так |
для кожного циклу де знаходиться клавіша вставки на клавіатурі ноутбука | Коли ви обробите всі елементи колекції | Внутрішня обробка | немає |
Пов'язані публікації:
- для циклу
- цикл while
- цикл do-while