Pętle Java
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).
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:
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.
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 | 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