php中的两个for循环

php中的两个for循环,php,Php,我得到了这个代码…它使用了两个循环…你能解释一下它是如何工作的吗?结果是16 for($i=1; $i<=2; $i++) { for($j=1; $i<=5; $i++) { if($i == 1) echo $j; elseif($i ==2) echo $j+5; } } 但是如果我这样做 for($i=1; $i<=2

我得到了这个代码…它使用了两个循环…你能解释一下它是如何工作的吗?结果是16

for($i=1; $i<=2; $i++)
    {
       for($j=1; $i<=5; $i++)
       {
          if($i == 1)
             echo $j;
          elseif($i ==2)
             echo $j+5;
       }
    } 
但是如果我这样做

for($i=1; $i<=2; $i++)
        {
           for($j=1; $i<=5; $i++)
           {
              if($i == 1)
                 echo $j;
              elseif($i ==2)
                 echo $j;
           }
        } 
结果是11

怎么可能?

您的代码与以下代码相同:

$j = 1;
for ($i = 1; $i <= 5; $i++) {
  if ($i == 1) {
    echo $j;
  }
  elseif ($i == 2) {
    echo $j + 5;
    // below is second piece code.
    // echo $j;
  }
}
因此:

第一段代码回显1和1+5,即16


第二段代码回显1和1,即11。

你的代码是11和他的16,因为他得到了$j+5;11 + 5 = 16 ;

很简单,您的外部循环将运行一次

$i在内部循环中被加上,所以外部循环只运行一次

内循环将运行5次,每次$i加1,当$i为1时,您打印的$j始终为1,所以现在您的输出中有1

然后,当$i为2时,您将打印$j+5,这将是1+5=6,因此您的输出中将有16个

因此,当您将$j+5更改为$j时,您将有11个输出


实际上,在第一个代码1和6中,您正在以字符串形式打印两个独立的数字,在第二个代码1和1中,您正在以字符串形式打印两个独立的数字!这很好。在第一次内部迭代中,ifi==1表示它是1。请记住,您打印的j不是递增的。因此,在第二次迭代中,i==2表示它是1。因此,最后是1…

提示:尝试在Echo之后添加一个新行\n您在这里尝试什么?第二个循环对我没有任何意义。。可能没有人…是的,我不是说必须求和,我是说差是5,因为+5。