Guide: Kontrollering av verdier
PHP- & MySQL-innføring: Kapittel 3
Mer om løkker - for
Den mest kompliserte løkketypen er for, som har følgende syntaks:
for (uttrykk1; uttrykk2; uttrykk3)
{
funksjon(er)
}
Først blir uttrykk1 utført, og det kun én gang. Denne inneholder normalt deklarering av en variabel. Deretter blir selve sjekken av uttrykket utført (uttrykk2). Viser dette uttrykket seg å være usant vil for-løkken stoppes. Er den sann fortsetter den, og utfører uttrykk3.
Det høres kanskje vanskelig ut, men se på det følgende eksempelet. Vi har tatt utgangspunkt i det samme som vi gjorde ved eksemplene på while- og do-while-eksemplene.
for ($nummer = 1; $nummer <= 10; $nummer++)
{
echo "Dette er linje nummer $nummer<br>";
}
Kjører vi dette vil vi få akkurat samme utfall som ved de forrige eksemplene. Prøv selv!
La oss bruke det i praksis!
Eksemplene vi nå har sett på fungerer fint, men de har liten nytte i praksis. La oss bruke det vi har lært i praksis til å estimere kvadratroten av et tall, la oss si 81. Riktignok har PHP en fin funksjon som selv sier hva kvadratoroten er (sqrt()), men det er mye morsommere å gjøre det selv. Gjetningen starter med at "1" er kvadratroten, og forbedrer etter hver kjøring gjetningen.
For å gjøre dette må vi kunne litt grunnleggende matematikk i PHP. Det er selvsagt svært enkelt. * indikerer multiplikasjon (ganging), / indikerer divisjon (deling), - indikerer minus, osv.
$nummer = 81;
$gjett = 1.0;
$presisjon = 0.0000001;
$gjett_rot = $gjett * $gjett;
while (($gjett_rot - $nummer > $presisjon) or
($gjett_rot - $nummer < - $presisjon))
{
echo "Jeg gjetter at kvadratroten av $nummer er $gjett<br>";
$gjett = ($gjett + ($nummer / $gjett)) / 2;
$gjett_rot = $gjett * $gjett;
}
echo "$gjett er kvadratroten av $gjett_rot";
Kjører vi dette skriptet skal det se ut noe som dette:
Dette kan imidlertid virke litt vanskelig og uoversiktlig for mange, spesielt de som ikke har så mye kjennskap til matematikk. Studer koden nøyere, og test gjerne ut forskjellige ting selv!