[php] loops

Moderators: jkien, Xilvo

Reageer
Gebruikersavatar
Berichten: 2.005

[php] loops

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?
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Berichten: 7.068

Re: [php] loops

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.

Gebruikersavatar
Berichten: 2.005

Re: [php] loops

Werkt niet :D Ik krijg nu een scherm met eerst een 1 en dan de rest van het scherm gevult met 2'en... ;)
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Gebruikersavatar
Berichten: 1.623

Re: [php] loops

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.
Beter kaal als geen haar want een kip snurkt

Gebruikersavatar
Berichten: 2.005

Re: [php] loops

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
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Gebruikersavatar
Berichten: 1.623

Re: [php] loops

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...
Beter kaal als geen haar want een kip snurkt

Gebruikersavatar
Berichten: 17.659

Re: [php] loops

zpidermen schreef:

Code: Selecteer alles

<?php

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

	 {

		  echo $i; echo ' ';

	 }

?>
Geheel correct.
"Knowledge speaks, but wisdom listens."
- Jimi Hendrix -

Gebruikersavatar
Berichten: 2.005

Re: [php] loops

Overheen gekeken ;) Ik zie nu ook al wat ik zelf fout deed.

Bedankt!
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Gebruikersavatar
Berichten: 4.810

Re: [php] loops

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 ;)

Gebruikersavatar
Berichten: 1.623

Re: [php] loops

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
Beter kaal als geen haar want een kip snurkt

Gebruikersavatar
Berichten: 2.005

Re: [php] loops

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
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Gebruikersavatar
Berichten: 4.810

Re: [php] loops

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 :(

Gebruikersavatar
Berichten: 1.623

Re: [php] loops

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.
Beter kaal als geen haar want een kip snurkt

Gebruikersavatar
Berichten: 5.679

Re: [php] loops

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).
In theory, there's no difference between theory and practice. In practice, there is.

Gebruikersavatar
Berichten: 2.005

Re: [php] loops

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è ;)
...verhit de dichloormono-oxide tot 277 graden Celcius en geniet van het effect...

Reageer