Pętle warunkowe w języku Java
Pętle warunkowe
Pętle należą do grupy instrukcji sterujących działaniem programu. Pozwalają one na cykliczne wykonanie instrukcji. Poznaliśmy już pętlę forpętlę for oraz działanie pętli warunkowej whilepętli warunkowej while.
Przypominając sobie, czym jest pętla while i jak jest zbudowana, przeanalizujmy poniższy pseudokod:
Od razu wiadomo, że budowa pętli while składa się z warunku. Oznacza to, że pętla będzie wykonywać powierzone zadania, dopóki podany warunek będzie spełniony. Ta cecha pozwala na zdefiniowanie pętli while słowami pętla warunkowa.
Składnia w języku Java
Sprawdźmy zatem, jaka jest składnia powyższego pseudokodu w języku Java.
Zauważmy, że ten rodzaj pętli w języku C++ wygląda identycznie, jak w języku Java. Najpierw sprawdzany jest warunek, a następnie wykonywane są zawarte w pętli instrukcje.
W tej implementacji istnieje możliwość, że instrukcje znajdujące się wewnątrz pętli mogą nigdy się nie wykonać! Jeżeli niepoprawnie dobierzemy warunek pętli while, to oczekiwane operacje mogą nie dojść do skutku.
Zapoznaj się z przykładem takiej sytuacji:
Zmienna logiczna przyjmuje wartość logiczną true (prawda), a instrukcje w naszej pętli wykonają się tylko wtedy, gdy warunek == false. Oznacza to, że w tym przypadku nie ma znaczenia, co napiszemy w ciele pętli while – nie zostanie to zrealizowane.
W kolejnym przykładzie przedstawimy odwrotną sytuację, ale również ściśle związaną z warunkiem w pętli while. Warunek zostanie opisany w taki sposób, aby pętla wykonywała się w nieskończoność. Zdarza się, że w programowaniu podejmuje się takie działanie – np. gdy zlecone polecenie ma się wykonywać w tle, przez cały czas pracy aplikacji, albo dla testów samej aplikacji lub którejś z jej funkcjonalności.
Zwróć uwagę, w jaki sposób rozwiązujemy ten problem, analizując poniższy kod programu napisanego w języku Java.
Na wyjściu programu będzie się cały czas ukazywał tekst „JESTEM PĘTLĄ NIESKONCZONĄ”. Spowodowała to pierwsza linia kodu: while (4 > 3). Użyliśmy zdania logicznego prawdziwego: liczba 4 jest zawsze większa od 3, więc nasza instrukcja będzie się wykonywała w nieskończoność.
Istnieją też inne sposoby, żeby pętla while wykonywała się w nieskończoność. Jednym z nich jest napisanie w warunku pętli while słowa kluczowego true:
Skoro warunek wykonania pętli to true, pętla zawsze będzie się wykonywać.
Modyfikacje – pętla do.. while
Czy poznana teraz składnia to jedyny sposób do zapisania pętli while w języku Java? Podobnie jak w języku C++, istnieje możliwość drobnego zmodyfikowania pętli while:
Zastanów się teraz i spróbuj udzielić odpowiedzi na pytania dotyczące modyfikacji pętli:
Co nam to umożliwia?
Jaka jest różnica między pętlą
while, ado.. while?
Modyfikacja ta powoduje, że niezależnie od podanego w while (warunek) warunku i tak chociaż raz wykona się to, co jest w ciele pętli do. Przyjrzyjmy się temu przykładowi:
Nasz warunek nie umożliwia dalszego wykonania pętli – na ekranie pojawi się jeden raz napis „INFORMATYKA TO MOJA PASJA”, ponieważ warunek ten jest sprawdzany dopiero na końcu, po jednokrotnym wykonaniu do.
Spróbujmy jednak osiągnąć podobną sytuację, wykorzystując zmienną logiczną boolean, żeby porównać działanie obu pętli w jednym programie.
Na wyjściu programu ukaże nam się łańcuch znaków: „Pętla do.. while”, co potwierdza wcześniejsze rozważania.
Mamy już podstawy dotyczące składni pętli while w języku Java – przejdźmy do praktycznych przykładów.
W języku Java inaczej deklarujemy zmienną logiczną niż w języku C++.
Java:
boolean zmiennaC++:
bool zmienna
Napisz w języku Java program, który wypisze licznik kolejnych liczb całkowitych, zaczynając od liczby liczba.
Porównaj swoje rozwiązanie z prezentacją.
W symulacji interaktywnej przedstawiono prosty program w języku Java, wykorzystujący pętlę warunkową while oraz jego odpowiednik w postaci schematu blokowego. Przeanalizuj jego działanie oraz porównaj kroki wykonywane przez obydwa programy.

Zasób interaktywny dostępny pod adresem https://zpe.gov.pl/a/DBXAZH6J2
Oto prosty program w języku Java z wykorzystaniem pętli warunkowej while. Przeanalizuj jego działanie.