Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Kontrollstrukturer (Kapittel 3)

Liknende presentasjoner


Presentasjon om: "Kontrollstrukturer (Kapittel 3)"— Utskrift av presentasjonen:

1 Kontrollstrukturer (Kapittel 3)

2 Mål Forstå kontrollstrukturer i PHP
Vite forskjell på ulike typer løkker og beslutninger Være klar over noen kilder til feil

3 Hvordan utføres et script?
Fra topp til bunn Kontrollstrukturer brukes til å bestemme flyten til et script To kategorier Beslutninger Løkker

4 Kontrollstruktur Hode Kropp Består av et kodeord og et uttrykk
kodeord(uttrykk) { kroppen inneholder koden som skal kjøres dersom uttrykket er sant } Eksempel: if($a == $b) { echo “$a er lik $b”; Hode Består av et kodeord og et uttrykk Kropp Inneholder koden som skal utføres dersom uttrykket i hodet evalueres til sant

5 Beslutninger Kontrollerer hvorvidt noe skal utføres eller ikke
To hovedstrukturer if switch

6 if Består av et hode med en betingelse
Kropp med kode som kjøres dersom betingelsen er sann if(betingelse) { // Utføres hvis betingelsen // er sann } Eksempel: <?php $a = true; if($a) { echo $a; $b = “Petter Solberg”; if($b) { echo $b; ?>

7 if-else Alternativ dersom betingelsen er usann if(betingelse) {
// Utføres hvis betingelsen // er sann (true) } else { // er usann (false) } Eksempel: <?php $a = true; if($a) { echo “$a er sann<br/>\n”; echo “$a er usann<br/>\n”; ?>

8 if-elseif-else Kombinasjon av flere uttrykk som kan slå til
if(uttrykk 1) { // Utføres hvis uttrykk 1 // er sann } else if(uttrykk 2) { // Utføres hvis uttrykk 2 } else if(uttrykk 3) { // Utføres hvis uttrykk 3 } else { // Utføres hvis ingen av // uttrykkene er sanne }

9 Stalltips - Bruk av else
Det kan være vanskelig å forutsi under hvilke forhold et script kjører Alltid lurt å legge inn kode i else-blokker selv om kontrollen lite sannsynlig kommer til å ende opp i else-blokken Kan spare deg for timer med leting etter hva som er galt med scriptet ditt

10 Alternativ til if-else
if-else er den definitivt mest brukte kontrollstrukturen Kan skrives på en linje med en alternativ syntaks $verdi = (uttrykk) ? “sant” : “usant”; Eksempel: <?php $svaret = ($alder >= 18) ? “myndig” : “ikke myndig”; echo “Du er $svaret”; ?>

11 Sammensatte uttrykk Uttrykk av delbetingelser satt sammen med de logiske operatorene && og || (and og or) Bruk paranteser rundt hver delbetingelse for å være sikker på at alle delene blir evaluert i riktig rekkefølge

12 Eksempel på et sammensatt uttrykk
if( ($alder < 18) or ($alder >= 67) ) { echo “Rabatt, du er pensjonist eller umyndig”; } else { echo “Du er voksen og får ikke rabatt”; } // eller if( ($alder < 18) || ($alder >= 67) ) {

13 Tilsvarende med and (&&)
if( ($alder >= 18) and ($alder < 67) ) { echo “Du er voksen og får ikke rabatt”; } else { echo “Rabatt, du er pensjonist eller umyndig”; } // eller if( ($alder >= 18) && ($alder < 67) ) {

14 switch Alternativ til if-elseif-else
switch(uttrykk) { case verdi 1: // utføres hvis uttrykket er lik verdi1 break; case verdi 2: // utføres hvis uttrykket er lik verdi2 case verdi 3: // utføres hvis uttrykket er lik verdi3 default: // utføres hvis ingen case'er slår til } Alternativ til if-elseif-else Sammenligner ett uttrykk mot en rekke mulige verdier

15 Eksempel på bruk av switch
<?php switch(date(“l”)) { case “Monday”: $dag = “mandag”; break; case “Tuesday”: $dag = “tirsdag”; break; case “Wednesday”: $dag = “onsdag”; break; case “Thursday”: $dag = “torsdag”; break; case “Friday”: $dag = “fredag”; break; default: $dag = “endelig helg!!!”; } echo “Hvilken dag er det i dag?<br/>\n”; echo “Det er $dag<br/>\n”; ?>

16 Løkker Repeterer en kodeblokk et visst antall ganger
Gjenntas så lenge betingelsen som kontrollerer strukturen evalueres til sann (true) Tre hovedtyper for while foreach

17 Hvorfor løkker? Kan gjøre scriptet ditt mer konsist
Hvis du har lignende sekvenser av kode kan det lønne seg å legge dem i en løkke for å redusere antall kodelinjer Kan gjøre scriptet ditt mer fleksibelt Løkker gjør deg istand til å repetere en sekvens med kode til du når enden av en datastruktur som for eksempel et array eller en fil Uten en løkke må du vite antall elementer i et array eller lengden på en fil på forhånd

18 while Utfører en blokk med kode så lenge uttrykket er sant
while(uttrykk er sant) { gjør det som står i kroppen } Eksempel: <?php $i = 0; while($i < 10) { echo $i.”<br/>\n”; $i++; // øk $i med 1 ?> Utfører en blokk med kode så lenge uttrykket er sant

19 do-while do { Gjør det som står i kroppen minst en gang } while(uttrykk er sant); Eksempel: <?php $i = 10; echo “Tallet er $i<br/><\n”; } while(0 < $i--); ?> Brukes til å forsikre seg om at kodeblokken minst evalueres en gang

20 for-løkker Organiserer alle uttrykk som styrer løkka i hodet
for(initieringsuttrykk; testuttrykk; modifikasjonsuttrykk) { Gjør det som står i kroppen så lenge “testuttrykk” er sant } Eksempel: <?php for($i = 0; $i < 10; $i++) { echo “Tallet er $i<br/>\n”; ?>

21 Eksempler på for-løkker
<?php // Skriv ut hvert tredje tall for($i = 0; $i < 20; $i++) { if($i % 3 == 0) { echo “Tallet er $i<br/>\n”; } // Skriv ut hvert tredje tall med å endre // modifikasjonsuttrykket istedet for($i = 0; $i < 20; $i += 3) { ?>

22 Flere eksempler på for-løkker
<?php // Modifikasjonsuttrykket kan // være mer komplekst for($i=0; $i<20; print “$i<br/>\n”, $i++); // Uttrykkene kan også være tomme $i = 0; for(;;) { if($i >= 20) { break; } $i++; ?>

23 Tilsvarende med while-løkke
<?php // Skriv ut hvert tredje tall med while $i = 0; while($i < 20) { echo “Tallet er $i<br/>\n”; $i += 3; // øk $i med 3 } ?>

24 Faremoment Dersom kroppen til en kontrollstruktur består av én setning kan klammene sløyfes Potensiell kilde til feil Dersom du legger til flere linjer til kontrollstrukturen, husk å få på klammeparantesene

25 Eksempler på faremomenter
<?php if( betingelse er sann ) gjør dette; else dette gjøres uansett; while( betingelse er sann ) gjenta dette (og unngå uendelig løkke); men denne linjen gjøres bare en gang; for( startverdi; betingelse; endring ) gjenta dette; ?>

26 Nøsting Mulig å nøste kontrollstrukturer inn i andre kontrollstrukturer Øker fleksibiliteten

27 Eksempel på nøsting: Den lille gangetabellen
<?php echo “<table border=\”1\”>\n”; for($i=1; $i<=9; $i++) { echo “\t<tr>\n”; // starter på ny rad for($j=1; $j<=9; $j++) { // multipliserer ytre med indre teller $produkt = $i * $j; echo “\t\t<td>$produkt</td>\n”; } echo “\t</tr>\n”; // avslutter rad echo “</table>\n”; ?>

28 Tvinge frem avslutning av en kontrollstruktur
Betingelser for å kontrollere en kontrollstruktur kan bli komplekse To nøkkelord break – tvungen avslutning av en kontrollstruktur continue – flytter kontrollen umiddelbart til starten av en løkke

29 Eksempel på bruk av break
<?php while(true) { echo “<p>Denne setningen skrives ut</p>\n”; break; echo “<p>Dette vil ikke skrives ut</p>\n”; } for($i=0; $i<10; $i++) { echo “Tallet er $i<br/>\n”; if($i == 5) { ?>

30 Eksempel på bruk av continue
<?php for($i = 15; $i < 103; $i += 6) { if( $i % 7 == 0 ) { echo “Tallet er delelig med 7<br/>\n”; continue; } echo “$i<br/>\n”; ?>

31 Alternativ syntaks for kontrollstrukturer
Fjerner nødvendigheten av klammeparanteser vha et kolon (:) og en end<struktur>; Gjelder for alle if(): endif; while(): endwhile; for(;;): endfor; switch(): endswitch; <?php if($a == 5): echo "a er lik 5"; echo "..."; elseif($a == 6): echo "a er lik 6"; echo "!!!"; else: echo "a er hverken 5 eller 6"; endif; ?>


Laste ned ppt "Kontrollstrukturer (Kapittel 3)"

Liknende presentasjoner


Annonser fra Google