Nested For loop

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mr Beronne

Mr Beronne

20/09/2013 17:36:59
Quote Anchor link
Beste lezer.

Ik ben bezig met het experimenteren van PHP loops.
Nu wil ik graag het volgende figuur namaken doormiddel van een for loop:

*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
* * * * * *
* * * * *
* * * *
* * *
* *
*

Ik zal mijn denkwijze uitleggen en dan mijn code.
In deze figuur tel ik 13 regels dus mijn hoofd loop moet
iets 13 keer doorlopen dit werkt.

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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
for ($i = 1; $i <= 13; $i++) {
      echo "*";
      echo "<br/>":
}

Als je weer naar het figuur kijkt wordt na regel 7 de inhoud telkens 1 minder.
Nu dacht ik om een check (if statement) er in te zetten die checkt als hij op
regels 7 is aangekomen. waardoor ik daarna verder kan op regel 8. zie laatste code





        for ($i = 1; $i <= 13; $i++) {
            if ($i <= 7) {
                for ($a = 1; $a <= $i; $a++) {
                    echo "*";
                }
            }
            echo "<br/>";
    }



Het resultaat is dan dit:
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *

Nu moeten de overige 6 regels nog waar het weer afloopt. EN hier loop
ik namelijk vast. Ik zal mijn code laten zien maar kom er echt niet uit.


        for ($i = 1; $i <= 13; $i++) {
            if ($i <= 7) {
                for ($a = 1; $a <= $i; $a++) {
                    echo "*";
                }
            }
            else {
                //echo $i; is 8
                for ($x = 6; $x <= $i; $x--) {
                    echo "*";
                }
            }
            echo "<br/>";
        }
 
PHP hulp

PHP hulp

25/04/2024 13:29:32
 
- SanThe -

- SanThe -

20/09/2013 18:00:30
Quote Anchor link
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<=13; $i++)
{

    for($a=1; $a<=(7-abs($i-7)); $a++)
    {

        echo "*";
    }

    echo "<br/>";
}

?>
 
- Mark -

- Mark -

20/09/2013 19:28:02
Quote Anchor link
Je hebt niet eens een tweede loop nodig hiervoor. Verder zou ik de 7 in een var gooien, als je dat niet doet dan moet je je gehele script doorlopen als deze waarde veranderd.

Voor de rest leentje buur gespeeld bij SanThe, dat met abs() was ik dus niet opgekomen.

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
<?php

    # De gewenste hoogte van de "Piramide?".

        $height = 100;


    # Weergeven die handel.

        for($i = 1; $i <= ($height * 2 - 1); $i++){

            echo str_repeat('*', ($height - abs($i - $height))).'<br>';
        }


?>
 
Mr Beronne

Mr Beronne

21/09/2013 18:09:12
Quote Anchor link
Bedankt voor de reacties. Ik snap niet zo goed wat abs doet. Heb het geprobeerd te googlen maar wordt er niet veel wijzer van.
 
Erwin H

Erwin H

21/09/2013 18:58:43
Quote Anchor link
abs neemt de absolute waarde van een getal. Mocht je geen wiskundige zijn dan is de snelle, simpele uitleg dat het alle mintekens weg haalt.
abs(-2) = 2;
abs(-1) = 1;
abs(0) = 0
abs(1) = 1;
 



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.