1 van 1

[php] loops

Geplaatst: wo 16 jan 2008, 14:34
door PdeJongh
Ik ben momenteel bezig met het leren van PHP, maar ben op een probleempje gestuit bij het maken van loops.

Om de pagina zelf een reeks van nummers van 1 t/m 25 te laten maken, die dan achter elkaar komen, gebruik je de volgende code:

Code: Selecteer alles

<?php

 for($i = 1; $i <= 25; $i++)

 {

  echo $i.' ';

 }

?>
Dit betekent dus dat de variabele $i, beginnend bij waarde 1, elke keer met één toeneemt, zolang deze kleiner of gelijk is aan 25. Vervolgens worden alle waarden die eraan voldoen achter elkaar weergegeven op het scherm. Dit kun je hier ook zien.

Maar wat nu als ik wil dat de waarde steeds met 2 toeneemt in plaats van 1? Want ik wil als resultaat de volgende serie krijgen:

Code: Selecteer alles

1 3 5 7 9 11 13 15 17 19 21 23 25
Ik heb deze code al geprobeerd:

Code: Selecteer alles

<?php

 for($i = 1; $i <= 25; $i+2)

 {

  echo $i.' ';

 }

?>
Dit is net als wanneer je gewoon rekent in PHP. Het levert echter een scherm vol met 1'en op.

Ook deze code heb ik al geprobeerd:

Code: Selecteer alles

<?php

 for($i = 1; $i <= 25; $i+++)

 {

  echo $i.' ';

 }

?>
Ik dacht dat een extra + er extra aan zou toevoegen. Dit was ook niet waar.

Mijn vraag is daarom: hoe kun je dan wel een loop maken, waarbij het steeds met 2 toeneemt en niet de 1, zoals ik die uit deze tutorial heb gehaald?

Re: [php] loops

Geplaatst: wo 16 jan 2008, 14:40
door EvilBro
Ik zit niet zo in php, maar volgens mij werkt dit soortgelijk in java/C. i++ is equivalent met i = i+1, maar i+2 bestaat niet als los ding. Je zal dus moeten tikken i=i+2 i.p.v. i+2.

Re: [php] loops

Geplaatst: wo 16 jan 2008, 15:58
door PdeJongh
Werkt niet :D Ik krijg nu een scherm met eerst een 1 en dan de rest van het scherm gevult met 2'en... ;)

Re: [php] loops

Geplaatst: wo 16 jan 2008, 17:46
door zpidermen

Code: Selecteer alles

<?php

	 for ($i=1; $i<=25; $i=$i+2)

	 {

		  echo $i; echo ' ';

	 }

?>
Dat het rijtje met een 1 begint, is logisch, omdat achter het haakje $i=1 staat. Als je met een ander getal wil beginnen, moet je dat veranderen naar iets als $i=2.

Re: [php] loops

Geplaatst: wo 16 jan 2008, 17:58
door PdeJongh
zpidermen schreef:

Code: Selecteer alles

<?php

	 for ($i=1; $i<=25; $i=$i+2)

	 {

		  echo $i; echo ' ';

	 }

?>
Dat het rijtje met een 1 begint, is logisch, omdat achter het haakje $i=1 staat. Als je met een ander getal wil beginnen, moet je dat veranderen naar iets als $i=2.
Dat is mijn probleem niet. Het moet beginnen met een 1, maar daarna steeds met 2 toenemen. Het doel is namelijk om als resultaat dit te krijgen:

Code: Selecteer alles

1 3 5 7 9 11 13 15 17 19 21 23 25

Re: [php] loops

Geplaatst: wo 16 jan 2008, 18:02
door zpidermen
PdeJongh schreef:Dat is mijn probleem niet. Het moet beginnen met een 1, maar daarna steeds met 2 toenemen. Het doel is namelijk om als resultaat dit te krijgen:

Code: Selecteer alles

1 3 5 7 9 11 13 15 17 19 21 23 25
Eh... kijk nog eens goed naar mijn code...

Re: [php] loops

Geplaatst: wo 16 jan 2008, 18:28
door Ger
zpidermen schreef:

Code: Selecteer alles

<?php

	 for ($i=1; $i<=25; $i=$i+2)

	 {

		  echo $i; echo ' ';

	 }

?>
Geheel correct.

Re: [php] loops

Geplaatst: wo 16 jan 2008, 18:30
door PdeJongh
Overheen gekeken ;) Ik zie nu ook al wat ik zelf fout deed.

Bedankt!

Re: [php] loops

Geplaatst: wo 16 jan 2008, 18:42
door Cycloon

Code: Selecteer alles

<?php

 for ($i=1; $i<=25; $i=$i+2)

 {

  echo $i; echo ' ';

 }

?>
Trouwens nog enkele tips:

for($i=0;$i<25;$i+=2) is syntax mooier. Je kan $i+=2 zien als $i=$i+2, en dit werkt voor alle getallen. Ook laat je een forlus meestal best beginnen bij 0 (handiger als je met tabellen e.d. gaat werken). Overigens werkt $i-=2, $i/=2, $i*=2 ook ;)

Re: [php] loops

Geplaatst: wo 16 jan 2008, 18:49
door zpidermen
Cycloon schreef:Trouwens nog enkele tips:

for($i=0;$i<25;$i+=2) is syntax mooier. Je kan $i+=2 zien als $i=$i+2, en dit werkt voor alle getallen. Ook laat je een forlus meestal best beginnen bij 0 (handiger als je met tabellen e.d. gaat werken). Overigens werkt $i-=2, $i/=2, $i*=2 ook ;)
Weet ik, maar aangezien TS aangaf dat hij net met PHP was begonnen, leek het mij handiger om de code zo duidelijk mogelijk op te stellen (inclusief spatie achter elke ';'). Die mooiere syntax is voor later, alles op z'n tijd. Dat echo gedeelte in de lus had ik bijv. ook anders kunnen opstellen. Maar goed, de vraag van TS is in elk geval beantwoord :D

Re: [php] loops

Geplaatst: wo 16 jan 2008, 19:33
door PdeJongh
Cycloon schreef:

Code: Selecteer alles

<?php

 for ($i=1; $i<=25; $i=$i+2)

 {

  echo $i; echo ' ';

 }

?>
Trouwens nog enkele tips:

for($i=0;$i<25;$i+=2) is syntax mooier. Je kan $i+=2 zien als $i=$i+2, en dit werkt voor alle getallen. Ook laat je een forlus meestal best beginnen bij 0 (handiger als je met tabellen e.d. gaat werken). Overigens werkt $i-=2, $i/=2, $i*=2 ook :D
Ziet er ook mooi uit ja ;) Maar het ging mij vooral om hoe ik het kan laten doen. Het laten beginnen bij 0 hoefde daarom ook niet, dat heb ik recht uit de tutorial overgenomen. Toch bedankt voor de tip :D

Re: [php] loops

Geplaatst: wo 16 jan 2008, 20:11
door Cycloon
Ziet er ook mooi uit ja ;) Maar het ging mij vooral om hoe ik het kan laten doen. Het laten beginnen bij 0 hoefde daarom ook niet, dat heb ik recht uit de tutorial overgenomen. Toch bedankt voor de tip :D
Ik vond het alleszins wel belangrijk om het te vertellen omdat je nogal vaak mensen hard ziet vasthouden aan de methode die jij hier gebruikte. En dan zie je later in hun tabbelen zaken als $tabel[$i-1] optreden of andere onnodige work-arounds. Wat je ook wel vaak ziet zijn dingen als for($i=0;$i<=24;$i++), zoiets is iets minder doorzichtig als for($i=0;$i<25;$i++) waar je direct duidelijk ziet dat je 25 loops zal maken. Het zijn feitelijk kleine details, maar het maakt het programmeren iets makkelijker en overzichtelijker imo :D

Hopelijk denk je nog eens aan mij als je dit tegenkomt :(

Re: [php] loops

Geplaatst: wo 16 jan 2008, 20:35
door zpidermen
Wat je ook wel vaak ziet zijn dingen als for($i=0;$i<=24;$i++), zoiets is iets minder doorzichtig als for($i=0;$i<25;$i++) waar je direct duidelijk ziet dat je 25 loops zal maken.
Ik doe eigenlijk ook altijd for($i=0;$i<25;$i++), maar dan met spaties: for ($i=0; $i<25; $i++) wat het nalezen of debuggen van je code net even makkelijker maakt.

Re: [php] loops

Geplaatst: do 17 jan 2008, 00:40
door Rogier
dingen als for($i=0;$i<=24;$i++), zoiets is iets minder doorzichtig als for($i=0;$i<25;$i++) waar je direct duidelijk ziet dat je 25 loops zal maken.
Als ervaren programmeur denk je over zoiets niet eens meer na, maar ik kan me best voorstellen dat het voor beginners niet duidelijk is wat er met i<25 precies gebeurt (tot 25 of tot en met? stopt de for loop nadat hij hem voor de laatste keer heeft uitgevoerd en i<25 geldt niet langer, of gebeurt die check aan het begin? enz).

Re: [php] loops

Geplaatst: do 17 jan 2008, 10:04
door PdeJongh
Even bewijzen dat er ook beginners zijn die dat wel al doorhebben :D

De tellling begint bij 0, want $i=0. Zolang $i kleiner of gelijk is aan 24, komt er elke keer 1 bij de $i.

Jaja, goed hè ;)