为什么这个 php 代码 return 我是 13 而不是 3?我真的很困惑

why does this php code return me 13 and not 3? I'm really confused

谁能告诉我为什么这段代码 echo 的输出是 13?

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

你的代码是这样的,

echo 1; echo 3;

输出 13

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

检查代码中写的注释

希望这能帮助您理解代码的工作原理。

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

试试这个

<?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 循环开始,从 0 到 4 最多有 5 个循环 所以

  1. 然后循环开始,然后 $i 有 0 值所以 $i % 将相等 1 所以没有显示
  2. 当开始第二个循环时 $i 有 1 值然后 $i % 将是 等于 1 所以 显示 1 因为现在 $i 有 1 个值
  3. 当第三次循环 运行 时 $i 有 2 值然后 $i % 将是 等于 0 所以什么都不显示
  4. 当循环 运行 第四次时 $i 有 3 值然后 $i % 将是 等于 1 所以显示 3 因为现在 $i 有 3 值
  5. 当循环 运行 第五次时 $i 有 4 值然后 $i % 将 等于 0 所以什么都不显示