Nested For loop
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)
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
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/>";
}
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/>";
}
Voor de rest leentje buur gespeeld bij SanThe, dat met abs() was ik dus niet opgekomen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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>';
}
?>
# 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>';
}
?>
Bedankt voor de reacties. Ik snap niet zo goed wat abs doet. Heb het geprobeerd te googlen maar wordt er niet veel wijzer van.
abs(-2) = 2;
abs(-1) = 1;
abs(0) = 0
abs(1) = 1;