• No results found

PHP herhaalt: for en while

N/A
N/A
Protected

Academic year: 2021

Share "PHP herhaalt: for en while"

Copied!
21
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

PHP herhaalt: for en while

Huub de Beer

Eindhoven, 4 juni 2011

(2)

Iteratie, repetitie en loops

PHP herhaalt

I Een voor een de elementen van een array doorlopen? Gebruik foreach-statement

I Tellen van een beginwaarde tot een eindwaarde en bij elke tel een stuk code uitvoeren?for-statement

I Een stuk code herhalen zolang een conditie geldt?

while-statement

(3)

machtsverheffen

I Gebruik de PHP functiepow( grondtal, exponent )

I Maar je kunt ook zelf een machtfunctie definiëren met behulp van het for-statement.

machtsverheffen: g

e

I het grondtal g tot de macht (exponent) e

I in dit voorbeeld alleen voor e ≥ 0

I geis:

g × g × g × · · · × g

| {z }

e keer I g0=1, voor alle g.

(4)

machtsverheffen

I Gebruik de PHP functiepow( grondtal, exponent )

I Maar je kunt ook zelf een machtfunctie definiëren met behulp van het for-statement.

machtsverheffen: g

e

I het grondtal g tot de macht (exponent) e

I in dit voorbeeld alleen voor e ≥ 0

I geis:

g × g × g × · · · × g

| {z }

e keer I g0=1, voor alle g.

(5)

De machtsfunctie in PHP

1 function macht( $g, $e ) {

2 // Bereken $g tot de macht $e en retourneer die waarde

3

4 $macht = 1;// $g^0 = 1 voor alle $g, dus goede beginwaarde

5

6 for( $i = 1; $i <= $e; $i++ ) {

7 // tellertje $i

8 // van 1 tot en met $e, elke tel bijgehouden in $i , doe het volgende:

9 // vermenigvuldig de macht tot nu toe met het grondtal

10 $macht = $macht ∗ $g;

11 }

12

13 // $g is $e keer met zichzelf vermenigvuldigd

14 return $macht;

15 };

(6)

simulatie (I): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

(7)

simulatie (II): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

(8)

simulatie (III): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

is $i ≤ $e? Ja, 1 ≤ 3

(9)

simulatie (IV): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

(10)

simulatie (V): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

(11)

simulatie (VI): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

is $i ≤ $e? Ja, 2 ≤ 3

(12)

simulatie (VII): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2

(13)

simulatie (VIII): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2 2 1 × 2 × 2 3 2

(14)

simulatie (IX): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2 2 1 × 2 × 2 3 2 3 1 × 2 × 2 3 2 is $i ≤ $e? Ja, 3 ≤ 3

(15)

simulatie (X): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2

2 1 × 2 × 2 3 2

3 1 × 2 × 2 3 2

3 1 × 2 × 2 × 2 3 2

(16)

simulatie (XI): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2

2 1 × 2 × 2 3 2

3 1 × 2 × 2 3 2

3 1 × 2 × 2 × 2 3 2 3 1 × 2 × 2 × 2 3 2

(17)

simulatie (XII): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2

2 1 × 2 × 2 3 2

3 1 × 2 × 2 3 2

3 1 × 2 × 2 × 2 3 2 3 1 × 2 × 2 × 2 3 2 4 1 × 2 × 2 × 2 3 2 is $i ≤ $e? Neen, 4 > 3

(18)

simulatie (XIII): 2

3

1 function macht( $g, $e ) {

2 $macht = 1;

3

4 for( $i = 1; $i <= $e; $i++ ) {

5 $macht = $macht ∗ $g;

6 }

7

8 return $macht;

9 };

waarden van de variabelen:

$i $macht $e $g

- - 3 2

- 1 3 2

1 1 3 2

1 1 × 2 3 2

1 1 × 2 3 2

2 1 × 2 3 2

2 1 × 2 × 2 3 2

2 1 × 2 × 2 3 2

3 1 × 2 × 2 3 2

3 1 × 2 × 2 × 2 3 2 3 1 × 2 × 2 × 2 3 2 4 1 × 2 × 2 × 2 3 2 Einde functie: retourneer de berekende macht

(19)

Het for-statement

1 for ( $i = beginwaarde; $i <= eindwaarde; $i++) {

2 // Code die uitgevoert wordt voor elke tel van

3 // beginwaarde tot eindwaarde

4 5 };

I meestal ziet for-statement er zo uit

I een tellertje met de naam i of j

I tel van een beginwaarde tot een eindwaarde met stapjes van 1

I kan ook andersom: van eindwaarde tot beginwaarde terugtellen

I of grotere stapjes nemen

(20)

Machtsverheffen met het while-statement

1 function macht( $g, $e ) {

2 $macht = 1;

3 $i = 1;

4

5 while($i <= $e) {

6 $macht = $macht ∗ $g;

7 $i++;

8 };

9

10 return $macht;

11 };

I Een conditie zoals in if-statement: zolang de conditie geldt, voert PHP de code in het while-statement uit.

I Let op: zorg ervoor dat de code in het while-statement de code ooit onwaar maakt, anders geraakt PHP in een oneindige lus.

I In dit geval tel je zelf: het for-statement is hier geschikter

(21)

Welk iteratiestatement?

I foreach: een voor een alle elementen in een array inspecteren

I for: een stuk code een vast aantal stappen herhalen

I while: andere gevallen:

I enkel een aantal elementen in een array inspecteren

I door een array heen springen

I berekenen van een wortel (benaderingsalgoritme)

I ....

I veel problemen kunnen met alle drie de iteratiestatements goed opgelost worden.

Referenties

GERELATEERDE DOCUMENTEN

Wat in de eerder genoemde samenwerkingsnota niet staat (want dat was te controversieel) is dat én veel minder milieuvervuiling, én minder werk- loosheid én behoud van

U kunt een afspraak maken voor een gesprek binnen deze tijden met een mede- werker van de afdeling vergunningen voor uw vragen over bouwen en vergunningen.. Op grond van artikel

eerst dachten we aan de groenstrook bij de Tweede Zijweg en het VLC, maar dat is voor veel kinderen uit De Ronde Venen wat ver weg.. Misschien is bij Allround

[r]

This is the 18 November 2014 Working Group Note of the XMLHttpRequest Level 2 document. This document is produced by the Web Applications (WebApps)

Whenever you want to create a website website that allows you to store and display that allows you to store and display information about a user, determine which user groups

In Listing 1.1 worden voor de naam, adres en woonplaats nieuwe variabelen ge¨ıntroduceerd en van de door de gebruiker ingevoerde waarde voorzien (regels 3–5)?. Het is gebruikelijk

I PHP code wordt door PHP module uitgevoerd en het resultaat wordt ook aan de resultaatpagina toegevoegd