Spis treści
Pętle mogą działać w nieskończoność, jeżeli ich warunek nigdy nie osiągnie wartości false. Program będzie w kółko wykonywał instrukcje z ciała nieskończonej pętli.
Jedyne, co można wtedy zrobić, to wymusić zakończenie takiego programu. Programy konsolowe możemy zatrzymać skrótem Ctrl + c
Spójrzmy na najprostszy przykład nieskończonej pętli:
while (true) { // instrukcje }
Tak zapisana pętla nigdy się nie zakończy – wyrażenie, które jest warunkiem pętli, to po prostu wartość true. Spójrzmy na przykład poniższego, natrętnego programu, który uparcie wypisuje na ekran komunikat "Witaj!":
public class NieskonczonaPetla { public static void main(String[] args) { while (true) { System.out.println("Witaj!"); } } }
Program po uruchomieniu z ogromną prędkością produkuje na ekranie komunikaty "Witaj!". Użycie skrótu klawiaturowego Ctrl + c powoduje wymuszenie jego zatrzymania.
Czy pętle nieskończone są do czegoś przydatne? Tak – często chcemy, aby nasz program działał cały czas i wykonywał określone operacje. Programy oferują też często użytkownikowi możliwość zakończenia jego działania, jeżeli wykona on odpowiednią akcję – podobnie, jak widzieliśmy w przykładzie pętli do..while do sumowania par liczb. Program ten działał tak długo, aż użytkownik nie wyraził chęci to jego zatrzymania poprzez podanie znaku "t", który warunkował zakończenie pętli.
Z drugiej jednak strony, nieskończone pętle często są wynikiem źle działającego kodu, w którym znajduje się jakiś błąd. Po napisaniu pętli zawsze warto zastanowić się, czy w każdym przypadku działania naszego programu warunek pętli w pewnym momencie będzie miał wartość false, a tym samym, pętla się zakończy.