Tellen van 1 tot 100
In mijn script wil ik graag een code die telt van 1 tot 100 en dit dan ook 'print'. Dit is dan ook een opdracht in een basis php boek wat ik op dit moment bestudeer. Het tellen van 1 tot 100 is me gelukt met:
for( $i=1; $i<=100; $i++ ) //1 tot 100 onder elkaar
{echo "<br>"; echo $i; }
De tweede opdracht is echter om dit nogmaals te doen maar dan het te 'printen' in rijen van 10. Dus in plaats van:
1
2
3
ect.
;
123
456
(maar dan per 10 natuurlijk).
Iemand enig idee hoe ik dit voor elkaar krijg? Heb tot nu toe wat uitleg over het switch command gehad, if/then/else en for, volgens het boek zou ik met een van deze het voor elkaar meoten kunnen krijgen maar ik heb even geen idee hoe.
Bij voorbaat dank!
Kijk eens naar de modulo operator
Andre Sep op 11/09/2013 00:01:49:
Andre, deze werkt helaas niet zoals het hoort, hierbij krijg ik:
1111111111
2222222222 ect. terwijl het moet zijn:
12345678910
11121314151617181920 ect. (het liefst nog met spatie tussen 11 12 13 voor de duidelijkheid
Frank, jou optie was inderdaad waar ik zelf ook al aan dacht (op de delen fucntie na dan). echter hoe verwerk ik de 'als $i deelbaar is door 10' functie erin, heb meerdere dingen geprobeerd maar deze werken helaas niet.
Bedankt ieder geval allemaal voor de snelle reacties!
Gewijzigd op 11/09/2013 00:33:53 door Nicolas Mousserin
Code (php)
1
2
3
4
2
3
4
echo 20 % 3 . '<br>';
echo 20 % 4 . '<br>';
echo 20 % 5 . '<br>';
echo 20 % 6 . '<br>';
echo 20 % 4 . '<br>';
echo 20 % 5 . '<br>';
echo 20 % 6 . '<br>';
succes met je studie :-)
Het simpelste is volgens mij gewoon een tellertje laten meelopen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// teller op nul zetten
$teller = 0;
// tot honderd tellen
for( $i=1; $i<=100; $i++ )
{
echo $i;
// teller verhogen
$teller = $teller + 1;
// kijken of de teller op tien staat
if($teller == 10)
{
// zo ja
// teller weer op nul zetten
$teller = 0;
// en naar een nieuwe regel gaan
echo '<br />';
}
}
?>
// teller op nul zetten
$teller = 0;
// tot honderd tellen
for( $i=1; $i<=100; $i++ )
{
echo $i;
// teller verhogen
$teller = $teller + 1;
// kijken of de teller op tien staat
if($teller == 10)
{
// zo ja
// teller weer op nul zetten
$teller = 0;
// en naar een nieuwe regel gaan
echo '<br />';
}
}
?>
Gewijzigd op 11/09/2013 08:29:11 door - SanThe -
Uiteraard nagelaten om zelf de code te testen.
Ook excuses voor de dubbele post, ik heb dit geplaatst via mijn mobiel en ik heb geen idee waar het mis is gegaan...
Toch blijf ik bij mijn punt dat het met een tweede 'for' statement ook lukt, maar het wordt dan lastiger en zeker ook omslachtiger! Ik raad je dan ook aan om dit alleen als een verbetering van mijn eigen code te zien en eens goed na te denken over de reacties hierboven:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
// deze 'for' zorgt voor de tientallen en de nieuwe regel:
for ($i=0; $i<=9; $i++)
{
// deze 'for' zorgt voor de bepaling van het juiste getal
// en de weergave van dat getal:
for ($x=1; $x<=10; $x++)
{
// berekenen welk getal:
$y = $i*10;
$z = $y+$x;
// getal weergeven (inc. spatie):
echo $z.' ';
}
// de nieuwe regel:
echo '<br>';
}
?>
// deze 'for' zorgt voor de tientallen en de nieuwe regel:
for ($i=0; $i<=9; $i++)
{
// deze 'for' zorgt voor de bepaling van het juiste getal
// en de weergave van dat getal:
for ($x=1; $x<=10; $x++)
{
// berekenen welk getal:
$y = $i*10;
$z = $y+$x;
// getal weergeven (inc. spatie):
echo $z.' ';
}
// de nieuwe regel:
echo '<br>';
}
?>
Nicolas Mousserin op 11/09/2013 00:33:07:
Frank, jou optie was inderdaad waar ik zelf ook al aan dacht (op de delen fucntie na dan). echter hoe verwerk ik de 'als $i deelbaar is door 10' functie erin, heb meerdere dingen geprobeerd maar deze werken helaas niet.
Dit wordt gedaan met de 'modulo operator'. Stel ik wil bepalen of een getal even (deelbaar door 2) of oneven (niet deelbaar door 2) is. Dan kan ik deze controle doen:
Wat de modulo eigenlijk doet is het gegeven getal ($x) delen door een waarde (in dit geval 2) en het antwoord is dan niet het resultaat van een deling, maar de restwaarde!
Stel ik heb de volgende delingen:
- 18 % 6 = 0 (18 / 6 = 3, geen restwaarde)
- 20 % 6 = 2 (18 / 6 = 3, restwaarde = 2)
Voor meer informatie:
Modulo
Gewijzigd op 11/09/2013 13:49:44 door Andre Sep
Andre Sep op 11/09/2013 08:27:05:
Quote:
Frank, jou optie was inderdaad waar ik zelf ook al aan dacht (op de delen fucntie na dan). echter hoe verwerk ik de 'als $i deelbaar is door 10' functie erin, heb meerdere dingen geprobeerd maar deze werken helaas niet.
Die laat toe dat je een if/then/else kan gebruiken zonder de echo te moeten verlaten.
De vorm is (evaluatie ? als_waar : als_niet_waar ).
Dat komt vaak van pas
Nogmaals allemaal bedankt en tellen van 1 tot 100 in blokjes van 10 zal geen probleem meer voor me zijn!;)