PHP while petlje : PHP While Loop

PHP naredba while petlje

Za razliku od naredbe for za koju kažemo da izvršava naredbe petlje unaprijed zadani broj puta (u pravilu - iako ne mora značiti), naredba while izvršava naredbe petlje nepoznat broj puta (sve dok je zadani uvjet ispunjen).

Sintaksa while petlje:

<?php
while(uvjet) {
  blok_naredbe;
}
?>

Objašnjenje:

while – ispituje je li zadani uvjet istinit

a) Ako je uvjet istinit izvršavaju se naredbe navedene unutar vitičastih zagrada iza while.

Jedna od naredbi unutar bloka naredbi mora mijenjati vrijednost varijable unutar zadanog uvjeta kako ne bi dobili beskonačnu petlju.

b) Ako uvjet nije istinit, program nastavlja izvršavanje prve naredbe iza while bloka naredbi.

Nakon što se izvrše sve blok_naredbe, ponovno se ispituje istinitost uvjeta.

Pogledajmo primjer:

<?php
$var = 5;
while ($var < 100) {
  echo("varijabla ima vrijednost: $var <br />");
  $var = $var + 15;
}
echo("Završena while petlja<br />");
?>

Upoteba dvotočke

U većini programskih jezika while petlja se piše na prethodno opisan način. PHP uvodi novinu i mogućnost drugačijeg označavanja bloka naredbi korištenjem znaka dvotočke ( : ) i posebnih ključnih riječi.

Druga moguća sintaksa while petlje u php jeziku ima slijedeći oblik:

<?php
while(izraz):
  blok_naredbi;
endwhile;
?>

Gornji primjer u ovom obliku bi izgledao:

<?php
$var = 5;
while($var < 100):
  echo("varijabla ima vrijednost: $var <br />");
  $var = $var + 15;
endwhile;
echo("Završena while petlja. <br />");
?>

Ključna riječ break

Pomoću ključne riječi break možemo bez ispitivanja uvjeta izaći iz while petlje. Pogledajmo slijedeći primjer:

<?php
$var = 5;
while($var < 100) {
  echo("varijabla ima vrijednost: $var <br />");
  $var = $var + 15;
  if ($var == 50)
    break;
}
echo("Završena while petlja. <br />");
?>

U ovom primjeru ne čekamo da uvjet ($var < 100) bude neistinit nego kada varijabla $var dobije vrijednost 50 "nasilno" izlazimo iz while petlje.

do while petlja

PHP podržava uporabu do while petlje kod koje se uvjet ispituje na kraju za razliku od while petlje kod koje se uvjet ispituje na početku.

Tako se do while petlja mora izvršili barem jedanput dok se while petlja ne mora izvršiti niti jedanput ako uvjet nije zadovoljen.

Sintaksa do while petlje:

<?php
do {
  blok_naredbi;
} while(uvjet);
?>

Objašnjenje:

U prvom prolazu se uvijek izvršava blok naredbi zato jer se uvjet ispituje na kraju.

while – ispituje je li zadani uvjet istinit.

a) Ako je uvjet istinit izvršavaju ponovo se izvršava blok_naredbi navedenih unutar vitičastih zagrada.

Jedna od naredbi unutar bloka naredbi mora mijenjati vrijednost varijable unutar zadanog uvjeta kako ne bi dobili beskonačnu petlju.

b) Ako uvjet više nije istinit, program nastavlja izvršavanje prve naredbe iza while.

Pogledajmo na primjeru:

<?php
$var = 5;
do {
  echo("Varijabla ima vrijednost $var <br />");
  $var = $var + 15;
} while($var < 100);
echo("Završili smo s do while naredbom. <br />");
?>

U ovom slučaju u odnosu na primjer while naredbe, do while naredba s ispitivanjem uvjeta na kraju će obaviti iste zadatke kao i while naredba s ispitivanjem uvjeta na početku.

No to ne mora biti tako, nekada uvjet nije niti jednom zadovoljen i tada moramo koristiti while naredbu.

Kada znamo da će while naredba sigurno proći jedanput može nam biti jednostavnije koristiti do while naredbu.