Wróć do informacji o e-podręczniku Wydrukuj Pobierz materiał do PDF Pobierz materiał do EPUB Pobierz materiał do MOBI Zaloguj się, aby dodać do ulubionych Zaloguj się, aby skopiować i edytować materiał Zaloguj się, aby udostępnić materiał Zaloguj się, aby dodać całą stronę do teczki

Przypominając sobie, czym jest pętla while i jak jest zbudowana, przeanalizujmy poniższy pseudokod:

Linia 1. dopóki warunek. Linia 2. wykonuj instrukcje.

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.pętla warunkowapętla warunkowa.

Składnia w języku Java

Sprawdźmy zatem, jaka jest składnia powyższego pseudokodu w języku Java.

Linia 1. while otwórz nawias okrągły warunek zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik instrukcje. Linia 3. zamknij nawias klamrowy.

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.

Ważne!

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:

Linia 1. boolean warunek znak równości true średnik. Linia 3. while otwórz nawias okrągły warunek znak równości znak równości false zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka println otwórz nawias okrągły cudzysłów INFORMATYKA cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy.

Zmienna logicznazmienna logicznaZmienna 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.

Linia 1. while otwórz nawias okrągły 4 zamknij nawias ostrokątny 3 zamknij nawias okrągły otwórz nawias klamrowy. Linia 2. System kropka out kropka println otwórz nawias okrągły cudzysłów JESTEM PĘTLĄ NIESKOŃCZONĄ cudzysłów zamknij nawias okrągły średnik. Linia 3. zamknij nawias klamrowy.

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:

Linia 1. while otwórz nawias okrągły true zamknij nawias okrągły.

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:

Linia 1. do otwórz nawias klamrowy. Linia 2. prawy ukośnik prawy ukośnik instrukcje. Linia 3. zamknij nawias klamrowy. Linia 4. while otwórz nawias okrągły warunek zamknij nawias okrągły średnik.

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, a do.. 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:

Linia 1. do otwórz nawias klamrowy. Linia 2. System kropka out kropka println otwórz nawias okrągły cudzysłów INFORMATYKA TO MOJA PASJA cudzysłów zamknij nawias okrągły średnik. Linia 3. zamknij nawias klamrowy. Linia 4. while otwórz nawias okrągły 1 zamknij nawias ostrokątny 3 zamknij nawias okrągły średnik.

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.

Linia 1. boolean warunek znak równości true średnik. Linia 3. while otwórz nawias okrągły warunek znak równości znak równości false zamknij nawias okrągły otwórz nawias klamrowy. Linia 4. System kropka out kropka println otwórz nawias okrągły cudzysłów Pętla while cudzysłów zamknij nawias okrągły średnik. Linia 5. zamknij nawias klamrowy. Linia 7. do otwórz nawias klamrowy. Linia 8. System kropka out kropka println otwórz nawias okrągły cudzysłów Pętla do kropka kropka while cudzysłów zamknij nawias okrągły. Linia 9. zamknij nawias klamrowy. Linia 10. while otwórz nawias okrągły warunek znak równości znak równości false zamknij nawias okrągły średnik.

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.

Ważne!

W języku Java inaczej deklarujemy zmienną logiczną niż w języku C++.

  • Javaboolean zmienna

  • C++: bool zmienna

Słownik

pętla warunkowa
pętla warunkowa

rodzaj pętli, w której zdefiniowany jest warunek, od którego zależy wykonanie kolejnej iteracji; warunek zawarty w definiowanej pętli jest pewnym wyrażeniem, które zwraca wartość typu logicznego; zależnie od tego, czy wartość logiczna uzyskana w wyniku ewaluacji wyrażenia jest równa wartości logicznej true (prawda), czy false (fałsz), wykonywanie pętli jest kontynuowane bądź przerywane

zmienna logiczna
zmienna logiczna

zmienna, która przyjmuje wartości 1 (true – prawda) lub 0 (false – fałsz); najczęściej używana do sprawdzenia, czy dany warunek zachodzi