почему этот php-код возвращает мне 13, а не 3? Я действительно смущен - PullRequest
0 голосов
/ 06 ноября 2019

Может кто-нибудь сказать мне, почему вывод echo этого кода равен 13?

$a=10;
$b=2;
$j=$a/2;
for ($i=0;$i<$j;$i++){
    if ($i % $b == 1) 
    echo "$i";
}

Ответы [ 4 ]

3 голосов
/ 06 ноября 2019

Попробуйте это

<?php
    $a=10;
    $b=2;
    $j=$a/2;
    echo $j;
    echo "<br>";
    for ($i=0;$i<$j;$i++){
        if ($i % $b == 1) 
        echo "$i";
        echo "<br>";
    }
?>
  • , потому что $ a имеет значение 10, $ b имеет значение 2, а $ j имеет значение 5

, когда начнется цикл, тогда $ iцикл из 0 начинается с максимум 5 циклов от 0 до 4, поэтому

  1. , затем сначала начинается цикл, затем $ у меня значение 0 , поэтому $ i% будет равно 1 поэтому ничего не отображается
  2. при запуске второго цикла, тогда $ у меня есть значение 1 , тогда $ i% будет равно 1 , поэтому отображает 1, потому что теперь $у меня есть 1 значение
  3. , когда цикл запускается в третий раз, тогда $ у меня есть значение 2 , тогда $ i% будет равно 0 , поэтому ничего не отображается
  4. когда цикл запускается в четвертый раз, тогда $ у меня есть значение 3 , тогда $ i% будет равно 1 , поэтому отобразите 3, потому что теперь у меня $ 3 есть значение
  5. когда цикл запускается в пятый раз, тогда $ у меня есть значение 4 , тогда $ i% будет равно 0 , поэтому ничего не отображается
1 голос
/ 06 ноября 2019
$a=10;
$b=2;
$j=$a/2;  //which will be 5
for ($i=0;$i<$j;$i++){ //the loop executes 5 times 
    if ($i % $b == 1) // this condition satisfies when $i becomes 1 && 3
    echo "$i"; //1 and 3 will be printed.
}

Проверьте комментарии, написанные в вашем коде

0 голосов
/ 06 ноября 2019

Надеюсь, это поможет вам понять, как работает ваш код.

$a=10;
$b=2;
$j=$a/2;
for ($i=0;$i<$j;$i++){
    if ($i % $b == 1)
    echo "output"; 
    echo "$i";
}
0 голосов
/ 06 ноября 2019

Ваш код такой,

echo 1; echo 3;

вывод 13

...