-3

私はこのコードを手に入れました...それは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 です。

どのようにすることができますか?

4

4 に答える 4

2

あなたのコードは次のものと同じです:

$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;
  }
}

それで:

コードの最初の部分はecho11+5、になります16

コードの2番目の部分はecho11、になります11

于 2012-09-19T09:46:17.833 に答える
0

うん!それは問題ありません。最初の内部反復では、それが1である場合は1です。印刷しているjをインクリメントしていないことを忘れないでください。 1 .. ..

于 2012-09-19T11:39:14.883 に答える
0

簡単です。外側のループは 1 回実行されます。

$i内側のループで加算されるため、外側のループは 1 回だけ実行されます ...

内側のループは 5 回実行され、そのたび$iに 1 が加算され$iます。1 は常に 1 である印刷$jなので、今1では出力に...

次に、 2が 1 + 5 =になるよう$iに印刷しているときは、出力に...$j + 5616

したがって、$j + 5just$jに変更すると11、出力に...

(実際には、最初のコード1と6、2番目のコード1と1で2つの別々の数字を文字列として出力しています)

于 2012-09-19T09:50:30.123 に答える
-1

あなたのコードは、彼が$ j + 5を手に入れたので、11と彼の16を言います。(11 + 5 = 16;))

于 2012-09-19T09:47:52.197 に答える