Java While Loop i Do while loop tutorijal
Loop ili petlja izvršava napisani kod sve dok se ne ispuni određeni uvjet. Već smo objasnili što je for loop odnosno for-each loop, gdje se izvršava zadani kod točno definirani broj puta. While loop i Do while loop su slični: koristimo ih kad ne znamo unaprijed koliko puta trebamo proći kroz petlju. U tom slučaju ćemo iterirati kroz petlju sve dok je postavljeni uvjet true
. Kada postane false
, iteracija će stati. Iz primjera ćemo najbolje shvatiti kako to funkcionira:
int i = 0;
while (i <= 5) {
System.out.println(i);
i++;
}
Za razliku od for loopa, unutar uvjeta petlje nema mjesta za deklaraciju varijable i zato ju moramo deklarirati izvan uvjeta petlje i dodijeliti joj vrijednost. Uvjet petlje je, podsjećam, zagrada nakon ključne riječi while
.
U vitičastoj zagradi je blok kod koji će se izvršiti, dakle ispisivat će se vrijednost varijable i
. Njegova će iteracija početi s nulom (jer je int i = 0
) te će se ponavljati sve dok je navedeni uvjet true
, odnosno manji ili jednak broju pet. Ispod naredbe za ispisivanje je naredba i++
, kojom se int i
povećava za jedan. Ukratko, inicirali smo int i
te zatim povećavali njegovu vrijednost sve dok je varijabla i
manja ili jednaka broju pet. Nakon toga je postao false
i prestao se izvršavati.
Primjer while loopa iz prakse je registracija na društvene mreže. Kad ste se prvi put registrirali na Facebook ili LinkedIn, od vas su traženi obavezni podaci bez kojih se niste mogli registrirati. Jedno od obaveznih polja bila je e-mail adresa.
Scanner scanner = new Scanner(System.in);
String email = "";
while (email.isBlank()) {
System.out.println("Enter your email: ");
email = scanner.nextLine();
}
System.out.println("A verification email is sent to " + email);
Pomoću while loopa smo uvjetovali novog korisnika na unos obveznih podataka. Sve dok nije upisana e-mail adresa, izvršavao se kod unutar vitičastih zagrada jer je vraćao vrijednost true
. Kad smo upisali adresu, uvjet je postao false
i kod se prestao izvršavati.
Do while loop
Do while loop je varijacija while loopa, koja osigurava da se kod unutar vitičaste zagrade izvrši barem jednom i tek nakon toga slijedi provjera je li postavljeni uvjet true
.
int i = 0;
do {
System.out.println(i);
i++;
} while (i <= 5);
Ispred koda koji će se izvršiti dodana je ključna riječ do
, dok se uvjet nalazi iza koda za izvršavanje. Na taj način prvo će se ispisati kod, bez obzira je li uvjet true
ili false
. Tek nakon prvog izvršavanja slijedi njegova provjera.
Scanner scanner = new Scanner(System.in);
int number;
do {
System.out.print("Please enter a positive number: ");
number = scanner.nextInt();
} while (number <= 0);
System.out.println("You entered a positive number: " + number);
U našem primjeru koristimo do while loop kako bismo osigurali da će korisnik unijeti pozitivan broj. Petlja će se neprestano izvršavati dok god je number <= 0
uvjet true
. Nakon što unesemo pozitivan broj uvjet će postati false
i petlja će prestati s izvođenjem.
Kao što vidite, jedina je razlika što će while loop prvo provjeriti je li uvjet true
i tada izvršiti kod. Do while loop će prvo izvršiti kod, a tek onda provjeravati postavljeni uvjet.