Tellen van 1 tot 100

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Nicolas Mousserin

Nicolas Mousserin

10/09/2013 23:42:23
Quote Anchor link
Beste lezer(s),

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!
 
PHP hulp

PHP hulp

22/12/2024 23:00:03
 
Wouter J

Wouter J

10/09/2013 23:45:37
Quote Anchor link
Kijk eens naar de modulo operator
 
Andre Sep

Andre Sep

11/09/2013 00:01:49
Quote Anchor link
Een tweede 'for' statement zal natuurlijk ook werken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

for ($i=1; $i<=100; $i++)
{

    for ($x=1; $x<=10; $x++)
    {

        echo $i;
    }

    echo '<br>';
}

?>
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/09/2013 00:02:04
Quote Anchor link
probeer het eerst eens met mensen taal:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
for( $i=1; $i<=100; $i++ ) //1 tot 100 onder elkaar
{
  // twee mogelijkheden.. of ik moet gewoon doorgaan of ik moet naar een nieuwe regel
  
  //als $i deelbaar is door 10 (zonder decimalen)

  if(...)
  {

    // ga naar een nieuwe regel
  }

  // laat $i op het scherm zien
}
?>
Gewijzigd op 11/09/2013 00:05:29 door Frank Nietbelangrijk
 
Andre Sep

Andre Sep

11/09/2013 00:21:24
Quote Anchor link
Een tweede 'for' statement zal natuurlijk ook werken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

for ($i=1; $i<=100; $i++)
{

    for ($x=1; $x<=10; $x++)
    {

        echo $i;
    }

    echo '<br>';
}

?>
 
Nicolas Mousserin

Nicolas Mousserin

11/09/2013 00:33:07
Quote Anchor link
Andre Sep op 11/09/2013 00:01:49:
Een tweede 'for' statement zal natuurlijk ook werken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php

for ($i=1; $i<=100; $i++)
{

    for ($x=1; $x<=10; $x++)
    {

        echo $i;
    }

    echo '<br>';
}

?>


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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/09/2013 07:12:05
Quote Anchor link
Zoals wouter zei zou je eens naar de MODULO operator moeten kijken:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
echo 20 % 3 . '<br>';
echo 20 % 4 . '<br>';
echo 20 % 5 . '<br>';
echo 20 % 6 . '<br>';


succes met je studie :-)
 
- SanThe -

- SanThe -

11/09/2013 07:50:50
Quote Anchor link
Voor een beginner lijkt mij modulo nog wat te moeilijk.
Het simpelste is volgens mij gewoon een tellertje laten meelopen.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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 />';
    }
}

?>
Gewijzigd op 11/09/2013 08:29:11 door - SanThe -
 
Andre Sep

Andre Sep

11/09/2013 08:27:05
Quote Anchor link
Mijn excuses... Wat was ik denkende :P
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)
PHP script in nieuw venster Selecteer het PHP script
1
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>';
}

?>


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:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($x % 2 == 0){
    // getal is even
} else {
    // getal is oneven
}
?>


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
 
- Mark -

- Mark -

11/09/2013 10:06:43
Quote Anchor link
@ Andre, die extra variabelen zijn niet eens nodig.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

    for($i = 1; $i < 100; $i += 10){

        for($x = $i; $x <= $i + 9; $x++){

            echo $x.' ';
        }


        echo '<br>';
    }


?>
Gewijzigd op 11/09/2013 10:12:10 door - Mark -
 
- SanThe -

- SanThe -

11/09/2013 12:22:53
Quote Anchor link
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.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
for( $i=1; $i<=100; $i++ )
{

    echo $i;
    if(($i % 10) == 0)
    {

        echo '<br />';
    }
}

?>
 
Kris Peeters

Kris Peeters

11/09/2013 12:35:38
Quote Anchor link
Nog een extra (gewoon het zelfde, maar dan met een andere notatie), is de ternary operator.
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
for( $i=1; $i<=100; $i++ ) {
  echo $i . ($i % 10 == 0 ? '<br>' : '') . ' ';
}

?>
 
Nicolas Mousserin

Nicolas Mousserin

11/09/2013 12:50:08
Quote Anchor link
Dankjewel iedereen! Nu heb ik zelfs meerdere opties haha. Over de MODULO operator, deze komt later in het boek aan bod dus ga ik me hier nog niet gelijk in verdiepen (ook al ziet het er in deze post heel logisch uit en is het goed uitgelegd.)

Nogmaals allemaal bedankt en tellen van 1 tot 100 in blokjes van 10 zal geen probleem meer voor me zijn!;)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.