Petlje u programiranju dopuštaju da se skup instrukcija izvodi više puta na temelju uvjeta. U Javi postoje tri vrste petlji koje su objašnjene u nastavku:
1. za petlju
For petlja se koristi kada znamo broj ponavljanja (znamo koliko puta želimo ponoviti zadatak). Naredba for uključuje uvjet inicijalizacije i inkrement/dekrement u jednom retku.
Primjer: Donji Java program pokazuje for petlju koja ispisuje brojeve od 0 do 10 u jednom retku.
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 + ' '); } } }
Izlaz
0 1 2 3 4 5 6 7 8 9 10
Sintaksa:
za (inicijalizacija; uvjet; povećanje/smanjenje) {
// kod koji će se izvršiti
}
Slika ispod prikazuje dijagram toka for petlje:
Dijagram toka for -petlje- Uvjet inicijalizacije : Ovdje inicijaliziramo varijablu u upotrebi. Označava početak for petlje. Može se koristiti već deklarirana varijabla ili se varijabla može deklarirati samo u lokalnoj petlji.
- Uvjet testiranja: Koristi se za testiranje izlaznog uvjeta za petlju. Mora vratiti Booleovu vrijednost. To je također ulazna kontrolna petlja jer se uvjet provjerava prije izvođenja naredbi petlje.
- Izvršenje naredbe : Nakon što je uvjet procijenjen kao istinit, izvode se izjave u tijelu petlje.
- Povećaj/Smanji : Koristi se za ažuriranje varijable za sljedeću iteraciju.
- Završetak petlje : Kada uvjet postane lažan, petlja se prekida označavajući kraj svog životnog ciklusa.
Bilješka : Postoji još jedan oblik for petlje poznat kao Poboljšana for petlja ili (za svaku petlju).
java objekt
Poboljšana for petlja (za svaki)
Ova se petlja koristi za ponavljanje nizova ili kolekcija.
Primjer : Donji Java program demonstrira poboljšanu for petlju (za svaku petlju) za ponavljanje niza i ispis imena.
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); } } }
Izlaz
Name: Sweta Name: Gudly Name: Amiya
Sintaksa:
za (varijabla dataType: arrayOrCollection) {
// kod koji će se izvršiti
}
2. dok Petlja
While petlja se koristi kada želimo provjeriti uvjet prije izvođenja tijela petlje.
Primjer: Donji Java program demonstrira while petlju koja ispisuje brojeve od 0 do 10 u jednom retku.
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++; } } }
Izlaz
0 1 2 3 4 5 6 7 8 9 10
Sintaksa:
dok (uvjet) {
// kod koji će se izvršiti
}
Slika ispod prikazuje dijagram toka while petlje:
java operator
Dijagram toka while-petlje- Dok petlja počinje provjerom Booleovog uvjeta. Ako se procijeni na istinito, izvode se naredbe tijela petlje, inače se izvršava prva naredba koja slijedi nakon petlje. Iz tog razloga naziva se i petlja kontrole ulaza
- Nakon što se procijeni da je uvjet istinit, izvode se izjave u tijelu petlje. Obično izjave sadrže ažuriranu vrijednost za varijablu koja se obrađuje za sljedeću iteraciju.
- Kada uvjet postane lažan, petlja se prekida što označava kraj njegovog životnog ciklusa.
3. do-while petlja
Do-while petlja osigurava da se blok koda izvrši barem jednom prije provjere stanja.
Primjer : Donji Java program demonstrira do-while petlju koja ispisuje brojeve od 0 do 10 u jednom retku.
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); } }
Izlaz
0 1 2 3 4 5 6 7 8 9 10
Sintaksa:
učiniti {
// kod koji će se izvršiti
} dok (uvjet);
Slika ispod prikazuje dijagram toka petlje do-while:
Dijagram toka do-while petlje- do while petlja počinje izvršavanjem naredbe. Nema provjere bilo kojeg stanja prvi put.
- Nakon izvršenja naredbi i ažuriranja vrijednosti varijable uvjet se provjerava na istinitu ili lažnu vrijednost. Ako se procijeni na istinito, počinje sljedeća iteracija petlje.
- Kada uvjet postane lažan, petlja se prekida što označava kraj njegovog životnog ciklusa.
- Važno je napomenuti da će do-while petlja izvršiti svoje naredbe najmanje jednom prije nego što se bilo koji uvjet provjeri i stoga je primjer izlazne kontrolne petlje.
Uobičajene pogreške petlje i kako ih izbjeći
Ako se petlje ne koriste ispravno, mogu dovesti do zamki i grešaka koje utječu na čitljivost i funkcionalnost koda. Ispod su neke uobičajene zamke petlji:
1. Beskonačne petlje
Ovo je jedna od najčešćih pogrešaka pri implementaciji bilo koje vrste petlje, a to je da ona možda nikada neće izaći, odnosno petlja radi beskonačno vrijeme. To se događa kada stanje iz nekog razloga ne uspije.
Vrste beskonačnih petlji:
- beskonačno za petlju
- beskonačna while petlja
Primjer: Ovdje oba primjera pokazuju beskonačne petlje.
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'); } } }
Izlaz: Kada pokrenete oba gore navedena koda dobit ćete pogrešku TLE (Time Limit Exceeded).
2. Pogreške off-by-one
Off-by-One pogreške nastaju kada se petlja pokrene jednom više ili jednom manje nego što ste željeli. To se u osnovi događa kada uvjeti petlje nisu pravilno postavljeni.
Primjer : Donji Java program pokazuje pogrešku Off-by-One gdje se petlja pokreće 6 puta, a očekivali smo da će se pokrenuti 5 puta.
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. Promjena varijabli petlje unutar petlje
Kada promijenimo uvjet petlje (kao i) unutar petlje, to može uzrokovati da petlja preskoči određene iteracije ili se ponaša na načine koje nismo očekivali. To može dovesti do pogrešaka ili neočekivanog ponašanja.
Primjer : Donji Java program demonstrira modificiranje varijable petlje unutar petlje što uzrokuje da petlja preskoči određene iteracije i ponaša se neočekivano.
tvornička metoda design patternJava
// 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. Prazno tijelo petlje
Prazno tijelo petlje javlja se kada je petlja napisana za ponavljanje, ali ne izvodi nikakve operacije unutar petlje. Pokretanje petlje bez korisnih operacija unutar nje može biti zbunjujuće.
Primjer: Donji Java program pokazuje tijelo prazne petlje.
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 } } }
Za ovo se neće generirati izlaz jer je tijelo petlje prazno.
Sažeta tablica
Vrsta petlje | Kada koristiti | Provjera stanja | Izvršava se barem jednom? |
|---|---|---|---|
za petlju | Kada želite točne iteracije | Prije tijela petlje Naziva se Entry-controlled. | Ne |
while petlja | Kada trebate prvo provjeriti stanje. | Prije tijela petlje Naziva se Entry-controlled. naredba grep u linuxu | Ne |
do-while petlja | Kad treba trčati barem jednom | Nakon tijela petlje Zove se Exit-controlled. | Da |
za-svaku petlju | Kada obradite sve predmete zbirke | Interno obrađeno | Ne |
Povezani postovi:
- za petlju
- while petlja
- do-while petlja