logo

Java petlje

Isprobajte na GfG Practice Napredak' title=

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:

Dok-petlja' title=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
Do-while-petlja' loading='lazy' title=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:

' loading='lazy' title=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 pattern
Java
// 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
Napravi kviz