While ciklo naudojimas
Parašė Apocal 2010 birželio 16 18:06:01
Ciklai yra valdymo struktūros, kurios leidžia kartoti nurodytus veiksmus tol, kol įvykdoma tam tikra sąlygą. Ciklų, ne daugybės vienodų sakinių, naudojimas leidžia lengviau suprasti ir prižiūrėti kodą. Pavyzdžiui, jei reikia kreiptis į funkciją šimtus ar tūkstančius kartų, naudojant ciklą, prireiks tik trijų kodo eilučių. Nors PHP yra keli ciklų tipai, pats paprasčiausias yra [i]while[/i] ciklas.
Ciklas [i]while[/i] pradedamas atidaromuoju sakiniu, kurį sudaro bazinis žodis [i]while[/i] ir sąlyga, kuri turi būti įvykdyta, kad būtų vykdomas kodas, parašytas ciklo viduje.
Sąlyga, rašoma skliaustuose gali būti kintamasis, operacija ar kreipinys į funkciją, grąžinančią reikšmę dešimt kartų, atidaromasis sakinys galėtų būti toks: [code]while ($count <= 10)[/code]
Jeigu sąlygoje nėra loginės reikšmės [i]true[/i] arba [i]false[/i] ar ji negali būti įvertinta logine reikšme [i]true[/i] arba [i]false[/i], ciklas gali būti vykdomas amžinai arba visiškai nevykdomas. Norint, kad ciklas būtų vykdomas, ciklo sąlyga turi būti įvertinta [i]true[/i]. Taigi įrašius
[c]while (true){[/c]galima sukurti amžinąjį ciklą.
Parašę atidaromąjį sakinį, turite nurodyti, kokie veiksmai bus atliekami cikle. Tai gali būti bet kokios operacijos ar veiksmai, kurie bus vykdomi kiekvieną kartą kartojantis ciklui, kol bus įvykdyta nurodyta sąlyga. Visi veiksmai rašomi riestiniuose skliaustuose. Dažniausiai cikle yra veiksmai, keičiantys sąlygą, nurodytą atidaromajame sakinyje. Pavyzdžiui, ankstesniame pavyzdyje galima didinti kintamojo [i]$count[/i] reikšmę kievieną kartą įvykdžius ciklą. Kai kintamojo [i]$count[/i] reikšmę padidinsite dešimt kartų, ciklo sąlyga bus įvertina [i]$count[/i] ir ciklas baigsis.

[b]Kodas:[/b]
[code]<?php
$count = 0;
while ($count < 5) {
echo "Įvykdyta $count </br>";
$count++;
}
?>[/code]

Kodas, esantis cikle vykdomas tol, kol ciko sąlyga įvertinima [i]false[/i]

[b]Rezultatas:[/b]
[code]
Įvykdyta 0
Įvykdyta 1
Įvykdyta 2
Įvykdyta 3
Įvykdyta 4[/code]

[b]Papildomas informacija[/b]
Jei reikia, kad nepriklausomai nuo sąlygos teisingumo, ciklas būtų įvykdytas bent vieną kartą, galite naudoti [i]do ...while[/i]. Ciklas [i]do ...while[/i] skiriasi nuo [i]while[/i] ciklo tuo, kad pirmiausia įvykdomas ciklas ir tik tada tikrinimas sąlygos teisingumas. Kaip ir [i]while[/i] ciklas, [i]do ...while[/i] vykdomas tol, kol sąlyga įvertinama [i]false[/i]

[b]Kodas:[/b]
[code]
do {
echo "Sąlyga įvykdyta.";
} while (false);[/code]

[b]Rezultatas:[/b]
Naršyklėje pateikiama: [i]Sąlyga įvykdyta.[/i] Atkreipkit dėmesį į tai, kad nors ir sąlyga yra [i]false[/i], tačiau cikals buvo vieną kartą įvykdytas. Jei tai būtų [i]while[/i] ciklas, jis būtų neįvykdytas ir naršyklėje nieko nematytumėte.