Pętle w programowaniu umożliwiają wielokrotne wykonanie zestawu instrukcji w zależności od warunku. W Javie istnieją trzy typy pętli, które opisano poniżej:
1. pętla for
Pętli for używamy, gdy znamy liczbę iteracji (wiemy, ile razy chcemy powtórzyć zadanie). Instrukcja for zawiera warunek inicjalizacji oraz przyrost/zmniejszenie w jednym wierszu.
Przykład: Poniższy program w języku Java demonstruje pętlę for, która wypisuje liczby od 0 do 10 w jednym wierszu.
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 + ' '); } } }
Wyjście
0 1 2 3 4 5 6 7 8 9 10
Składnia:
for (inicjalizacja; warunek; przyrost/zmniejszenie) {
// kod do wykonania
}
Poniższy obrazek przedstawia schemat blokowy pętli for:
Schemat blokowy pętli for- Warunek inicjalizacji : Tutaj inicjujemy używaną zmienną. Oznacza początek pętli for. Można użyć już zadeklarowanej zmiennej lub zmienną można zadeklarować lokalnie tylko w pętli.
- Warunki testowe: Służy do testowania warunku wyjścia pętli. Musi zwracać wartość logiczną. Jest to również pętla kontroli wejścia, ponieważ warunek jest sprawdzany przed wykonaniem instrukcji pętli.
- Wykonanie instrukcji : Gdy warunek zostanie uznany za prawdziwy, wykonywane są instrukcje w treści pętli.
- Zwiększanie/zmniejszanie : Służy do aktualizacji zmiennej do następnej iteracji.
- Zakończenie pętli :Kiedy warunek staje się fałszywy, pętla kończy się, co oznacza koniec jej cyklu życia.
Notatka : Istnieje inna forma pętli for, znana jako Ulepszona pętla for lub (dla każdej pętli).
projekt singletona
Ulepszona pętla for (dla każdego)
Pętla ta służy do iteracji po tablicach lub kolekcjach.
Przykład : Poniższy program Java demonstruje ulepszoną pętlę for (dla każdej pętli) służącą do iteracji po tablicy i drukowania nazw.
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); } } }
Wyjście
Name: Sweta Name: Gudly Name: Amiya
Składnia:
for (zmienna typu danych: arrayOrCollection) {
// kod do wykonania
}
2. podczas pętli
Pętli while używamy, gdy chcemy sprawdzić warunek przed wykonaniem treści pętli.
Przykład: Poniższy program Java demonstruje pętlę while, która wypisuje liczby od 0 do 10 w jednym wierszu.
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++; } } }
Wyjście
0 1 2 3 4 5 6 7 8 9 10
Składnia:
podczas gdy (warunek) {
// kod do wykonania
}
Poniższy obrazek przedstawia schemat blokowy pętli while:
maszynopis foreach
Schemat blokowy pętli while- Pętla while rozpoczyna się od sprawdzenia warunku logicznego. Jeśli zostanie oceniony jako true, wykonywane są instrukcje treści pętli, w przeciwnym razie wykonywana jest pierwsza instrukcja po pętli. Z tego powodu nazywa się to również pętlą kontroli wejścia
- Gdy warunek zostanie uznany za prawdziwy, wykonywane są instrukcje zawarte w treści pętli. Zwykle instrukcje zawierają wartość aktualizacji zmiennej przetwarzanej w następnej iteracji.
- Kiedy warunek staje się fałszywy, pętla kończy się, co oznacza koniec jej cyklu życia.
3. Wykonaj pętlę podczas
Pętla do-while zapewnia wykonanie bloku kodu przynajmniej raz przed sprawdzeniem stanu.
Przykład : Poniższy program w języku Java demonstruje pętlę do-while, która wypisuje liczby od 0 do 10 w jednym wierszu.
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); } }
Wyjście
0 1 2 3 4 5 6 7 8 9 10
Składnia:
Do {
// kod do wykonania
} podczas gdy (warunek);
Poniższy obraz przedstawia schemat blokowy pętli „do-while”:
Schemat blokowy pętli „do-while”.- do while pętla rozpoczyna się od wykonania instrukcji. Za pierwszym razem nie sprawdza się żadnego warunku.
- Po wykonaniu instrukcji i aktualizacji wartości zmiennej sprawdzany jest warunek pod kątem wartości prawdziwej lub fałszywej. Jeśli zostanie oceniony jako prawdziwy, rozpocznie się następna iteracja pętli.
- Kiedy warunek staje się fałszywy, pętla kończy się, co oznacza koniec jej cyklu życia.
- Należy zauważyć, że pętla do-while wykona swoje instrukcje co najmniej raz przed sprawdzeniem dowolnego warunku i dlatego jest przykładem pętli kontroli wyjścia.
Typowe błędy pętli i sposoby ich unikania
Jeśli pętle nie są używane prawidłowo, mogą wprowadzić pułapki i błędy, które wpływają na czytelność i funkcjonalność kodu. Poniżej znajduje się kilka typowych pułapek pętli:
1. Nieskończone pętle
Jednym z najczęstszych błędów przy implementacji jakiejkolwiek pętli jest to, że może ona nigdy nie zakończyć się, czyli pętla działa przez nieskończony czas. Dzieje się tak, gdy z jakiegoś powodu warunek nie zostanie spełniony.
Rodzaje nieskończonych pętli:
- nieskończony dla pętli
- nieskończony podczas pętli
Przykład: Tutaj oba przykłady demonstrują nieskończone pętle.
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'); } } }
Wyjście: Po uruchomieniu obu powyższych kodów pojawi się błąd TLE (przekroczenie limitu czasu).
2. Błędy pojedyncze
Błędy Off-by-One powstają, gdy pętla wykona się o jeden raz więcej lub o jeden mniej niż oczekiwano. Zasadniczo dzieje się tak, gdy warunek pętli nie jest ustawiony prawidłowo.
Przykład : Poniższy program Java demonstruje błąd typu Off-by-One, w którym pętla uruchamia się 6 razy, a spodziewaliśmy się, że wykona się 5 razy.
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. Modyfikowanie zmiennych pętli wewnątrz pętli
Kiedy zmienimy warunek pętli (np. i) wewnątrz pętli, może to spowodować, że pętla pominie pewne iteracje lub zachowa się w sposób, którego się nie spodziewaliśmy. Może to prowadzić do błędów lub nieoczekiwanego zachowania.
Przykład : Poniższy program Java demonstruje modyfikowanie zmiennej pętli wewnątrz pętli, co powoduje, że pętla pomija pewne iteracje i zachowuje się nieoczekiwanie.
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. Puste ciało pętli
Pusta treść pętli pojawia się, gdy pętla jest zapisywana w celu iteracji, ale nie wykonuje w niej żadnych operacji. Uruchamianie pętli bez żadnych przydatnych operacji w niej może być mylące.
samouczek c#
Przykład: Poniższy program Java demonstruje treść pustej pętli.
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 } } }
Nie zostaną wygenerowane żadne dane wyjściowe, ponieważ ciało pętli jest puste.
Tabela podsumowująca
Typ pętli | Kiedy stosować | Sprawdzanie stanu | Wykonuje się przynajmniej raz? |
|---|---|---|---|
dla pętli | Kiedy chcesz dokładnych iteracji | Przed treścią pętli Nazywa się to kontrolowanym wejściem. | NIE |
pętla while | Kiedy potrzebujesz najpierw sprawdzić stan. | Przed treścią pętli Nazywa się to kontrolowanym wejściem. | NIE |
pętla do-while | Kiedy musisz chociaż raz pobiec cynamon vs mate | Po treści pętli Nazywa się to kontrolowanym wyjściem. | Tak |
dla każdej pętli | Kiedy przetwarzasz wszystkie elementy kolekcji | Obsługiwane wewnętrznie | NIE |
Powiązane posty:
- dla pętli
- pętla while
- pętla do-while