mały|Nieskończone pętle często są przejawem błędów w oprogramowaniu. Tutaj niebieski ekran śmierci wystąpił, ponieważ „sterownik urządzenia utknął w nieskończonej pętli”. Pętla nieskończona to pętla, która nigdy nie zostanie zakończona, ponieważ nigdy nie zajdzie warunek zakończenia pętli. Może być to działanie celowe, stosowane w celu napisania programu nie kończącego nigdy swojego działania (por. serwer, daemon). W praktyce zdarza się, że takie pętle okazują się jednak skończone ze względu na biegnące równolegle procesy, które mogą wywołać pewne zdarzenia – zarówno informatyczne (np. przerwania), jak i fizyczne (np. awaria sprzętu).
Niektóre języki programowania mają w swojej składni pętle nieskończone (obok innych – skończonych – instrukcji pętli), np.: Ada, Turing loop ... end loop Forth BEGIN ... AGAIN Icon repeat wyrażenie Modula-2 LOOP ... END REXX DO FOREVER ... END
Powstanie pętli nieskończonej może też być błędem programisty, który źle określił warunek zakończenia pętli. O programie komputerowym, który wykonuje pętlę nieskończoną, czasami mówi się, że „zawiesił się”.
Przykłady w C/C++/Java/C#/Python W językach C, C++, Java, C#, Python: while(true) { // dowolne operacje, „true''”'' można zastąpić dowolną wartością różną od zera. }
albo
for (;;) { // dowolne operacje }
albo
while True: print "pętla nieskończona"
W wielu językach istnieje instrukcja bezwarunkowego wyjścia z pętli (np. w języku C) lub w nowszych implementacjach języków, w których standardowo nie występuje taka instrukcja (np. Pascal – Turbo Pascal). repeat if <warunek> then break;
until false;
Przypisy
Kategoria:Konstrukcje programistyczne Kategoria:Nieskończoność