我正在尝试使用WHILE
循环创建数字三角形。
这是使用FOR
创建的数字三角形:
这是我现有的FOR
代码
$m=1; $n=9; $z=9;
for($i=1; $i<=$n; $i++) {
for($j=$i; $j<=$n-1; $j++) {
echo " ";
}
for($k=1; $k<=$m; $k++) {
echo $k ." ";
}
for($c=$m; $c>1; $c--) {
echo $c-1 ." ";
}
echo "<br>";
$m++;
}
我想使用WHILE
创建数字三角形
看起来像这样:
我尝试WHILE
$i=1;
$j=1;
$k=1;
$m=1;
while($i<=$n) {
while($j<=$n-1) {
echo " ";
j++;
}
while($k<=$m) {
echo $k ." ";
k++;
}
$c=$m;
while($c>1) {
echo $c-1 ." ";
c--;
}
echo "<br>";
$m++;
$i++
}
输入$ n
我不知道最后放置$ c = $ m的位置
或者也许我弄错了?
最好将每个计数器放在自己的循环之前。一般来说,如果您注意到以下示意图,则可以将任何for
循环转换为while
循环:
for
循环通常是这样的:
for ([init]; [condition]; [increment]) {
/* the main code */
}
while
循环通常是这样的:
[init];
while ([condition]) {
/* the main code */
[increment];
}
所以您只需要更改代码的某些部分的位置,其结果类似于
$m=1; $n=9; $z=9;
// the main loop
$i=1;
while ($i <= $n) {
// first loop
$j=$i;
while ($j <= $n-1) {
echo " ";
$j++;
}
// second loop
$k=1;
while ($k<=$m) {
echo $k ." ";
$k++;
}
// third loop
$c=$m;
while ($c>1) {
echo $c-1 ." ";
$c--;
}
echo "<br>";
$m++;
$i++;
}