Nested For loop 2

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mr Beronne

Mr Beronne

22/09/2013 20:25:05
Quote Anchor link
Beste Lezers,

Mijn vorige post ging ook over een nested loop. Ik ben nu met een andere bezig.
Het figuur wat ik na moet maken is:

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

Het is mij zelf gelukt om dit te realiseren met een for loop maar denk dat de code een stuk korter kan.
Ik zal mijn denkwijze proberen uit te leggen en dan daarna mijn code.

Het figuur bestaan uit 8 regels dus dacht 1 hoofd loop die 8 keer iets doet van hoog naar laag.
En doormiddel van een if elseif statement te controleren op welke regels ik ben en dan afdrukken van de sterren.

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
        for ($i = 8; $i >= 1; $i--) {
            if ($i >= 7) {
                for ($x = 1; $x <= 8; $x++) {
                    echo "*";
                }
            }
            elseif ($i >= 5) {
                for ($x = 1; $x <= 6; $x++) {
                    echo "*";
                }                
            }
            elseif ($i >= 3) {
                for ($x = 1; $x <= 4; $x++) {
                    echo "*";
                }                
            }
            elseif ($i >= 1) {
                for ($x = 1; $x <= 2; $x++) {
                    echo "*";
                }                
            }            
            echo "<br/>";
        }


Graag zie ik kritiek, tips, tops en aanmerkingen tegemoet, zodat ik er weer meer van kan leren.
 
PHP hulp

PHP hulp

21/11/2024 23:27:46
 
- Mark -

- Mark -

22/09/2013 21:38:03
Quote Anchor link
Die if kun je eruit gooien als je met stapjes van twee terug loopt in je for loop.

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

    for($i = 8; $i >= 2; $i -= 2){

        echo str_repeat(str_repeat('*', $i).'<br>', 2);
    }


?>
 
- SanThe -

- SanThe -

22/09/2013 22:52:55
Quote Anchor link
Of zo:
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=8; $i>0; $i-=2)
{

  for($j=0; $j<2; $j++)
  {

    for($k=0; $k<$i; $k++)
    {

      echo '*';
    }

    echo '<br />';
  }
}

?>
 
Mr Beronne

Mr Beronne

23/09/2013 14:33:08
Quote Anchor link
Bedankt voor de reacties wist niet dat je in de for loop gebruik mocht maken van $i-=2. Weer wat geleerd.
 
Kris Peeters

Kris Peeters

23/09/2013 15:00:25
Quote Anchor link
Mr Bham op 23/09/2013 14:33:08:
Bedankt voor de reacties wist niet dat je in de for loop gebruik mocht maken van $i-=2. Weer wat geleerd.


O, en er mag nog veel meer.

Een for is in feite een veredelde while.

for(begin_statement; conditie; tussen_statement)

Alles wat je in een while kan steken, kan je ook in een for steken.

Het is absoluut niet nodig dat er een $i of $i++ aan te pas komt.
begin_statement, conditie en tussen_statement hoeven zelfs niet eens iets met mekaar te maken hebben.

Een voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sql
= "SELECT id, user FROM users ORDER BY user";
for ($res = mysql_query($sql); $row=mysql_fetch_assoc($res); echo '<a href="profiel.php?id=' . $row['id'] . '">' . $row['user'] . '</a><br>');
?>


Je hoort me niet zeggen dat dit de ideale manier is om records te halen, ik wil gewoon tonen hoe je veel meer kan doen met een for()
Gewijzigd op 23/09/2013 15:00:56 door Kris Peeters
 



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.