1+2+3+4+5+6=21 met while loop
Ik ben beginnend aan het aanleren van PHP en kom direct al met een probleem aanwaaien waar ik maar niet uitraak.
Deze opdracht heb ik wel kunnen uitvoeren met een for loop zoals hieronder aangebracht.Het werkt met ingeven van een nr zoals bv 6 op een form , waaruit dan bovenstaande uitkomst het gevolg is. Maar hetzelfde zou moeten gerealiseerd met een while loop.
Met dank voor jullie welwillende medewerking.
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
Gewijzigd op 19/01/2015 19:11:41 door PHP Student
Laat eens zien wat je zelf al geprobeerd hebt met de While-lus ?
Gewijzigd op 19/01/2015 20:17:29 door PHP Student
Voor de lus: Teller = 1
In de lus: Teller = Teller + 1
While conditie Teller < waarde
Robert Steegh op 19/01/2015 21:55:29:
Een while lus heeft uit zichzelf geen einde, een for lus wel (telt automatisch). In de while lus zul je er zelf voor moeten zorgen dat de conditie om uit de lus te raken optreedt.
Voor de lus: Teller = 1
In de lus: Teller = Teller + 1
While conditie Teller < waarde
Voor de lus: Teller = 1
In de lus: Teller = Teller + 1
While conditie Teller < waarde
Helaas is dit niet geheel juist. Een for lus biedt een voorziening voor een teller maar telt zeker niet automatisch. Eigenlijk zijn een for en een while lus identiek behalve in hun notatie (of schrijfwijze). Ze doen exact hetzelfde.
kijk maar eens:
doet precies hetzelfde als
doet precies hetzelfde als
Gewijzigd op 19/01/2015 23:26:18 door Frank Nietbelangrijk
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Zo ja, dan is dit een correcte oplossing.
Zo nee, wat gaat er mis ?
Bedankt voor de hulp.
Daarnaast kan het ietsje korter:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Frank als je het in wilt korten moet je wel $i buiten de if laten, nu wordt 1 overgeslagen.
Een for en een while lus zijn zeker niet identiek. Waarom zou er anders een verschil zijn. In de while loop kun je zelf het begin en eind bepalen. Veel gebruikt is natuurlijk: while ($stmt->fetch()) -> Dit is in een for lus niet mogelijk, omdat zoals gezegd start, eind en "teller" van te voren moet worden meegegeven. De teller hoeft geen cijfer te zijn, maar wel een reeks.
bij een while loop bepaal je ook zelf het eind. Beter gezegd: je bepaalt wanneer de lus mag worden verlaten. en alhoewel minder logisch kan met een for lus ook de while($stmt->fetch()) prima doorlopen worden. Ik denk dat je niet goed naar mijn drie voorbeelden gekeken hebt.
Gewijzigd op 20/01/2015 20:07:41 door Frank Nietbelangrijk
Weer wat geleerd, grappig. Ik ben van oorsprong geen php programmeur (Pascal, Delphi, Basic). In de meeste andere programmeertalen zou het voorbeeld onmogelijk zijn.
Dus een if, else, while, do, foreach, switch, for lijken uiteindelijk als twee druppels water op elkaar.
Alleen omdat het voor de mens al gauw een spaghetti brei wordt hebben we al die lussen bedacht en wordt het voor ons beter leesbaar.