PHP嵌套while循环

时间:2016-06-29 10:53:26

标签: php

我尝试在while内执行while打印乘法表,例如,

1  2  3  4  5
2  4  6  8 10
3  6  9 12 15
4  8 12 16 20
5 10 15 20 25

但我只得到1,2,3,4,5。

代码:

$i = 1;
$x = 1;
while($i <= 5){
   while($x <= 5){
     echo $i * $x;
     $x++;
   }
   echo "<br>";
   $i++;
}

4 个答案:

答案 0 :(得分:2)

您需要重置$x,所以:

$i = 1;
$x = 1;
while($i <= 5){
    while($x <= 5){
        echo $i * $x;
        $x++;
    }
    $x = 1; // added this line
    echo "<br>";
    $i++;
}

输出:

  

12345
  246810
  3691215
  48121620
  510152025

然后,您可以执行您想要格式化的内容。

更详细的解释:

  • 首次运行:

它进入外部和内部循环,显示第一行的所需输出。最终得到$i = 2$x = 6

  • 第二次运行:

由于$i2,它不会离开外循环,但$x6,所以它不会进入内部再次循环。

  • 最后*运行:

然后不断将1添加到$i,直到它不再与外部循环条件匹配,并留下不需要的结果。

答案 1 :(得分:2)

这种情况正在发生,因为当内部循环完成其迭代时,您不会重置$x。试试这个:

$i = 1;
while($i <= 5) {
  $x = 1;
  while($x <= 5) {
    echo $i * $x;
    $x++;
  }
  echo "<br>";
  $i++;
}

答案 2 :(得分:1)

使用此

这是因为在外部initialized完成其$x之后,您的while loop cycle没有inner loops。所以在一个周期<?php $i = 1; while($i <= 5) { $x = 1; while($x <= 5) { echo $i * $x; $x++; } echo "<br>"; $i++; } 没有运行

之后
admin

答案 3 :(得分:0)

DEMO ONLINE

php代码:

$i = 1;
while($i <= 5){
  $x = 1;
  while($x <= 5){
    echo $i * $x." ";
    $x++;
  }
  echo "<br/>";
  $i++;
}

<强>结果:

1 2 3 4 5 
2 4 6 8 10 
3 6 9 12 15 
4 8 12 16 20 
5 10 15 20 25