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

有人可以告诉我为什么此代码echo的输出为13吗?

$a=10;
$b=2;
$j=$a/2;
for ($i=0;$i<$j;$i++){
    if ($i % $b == 1) 
    echo "$i";
}
zhang4xue1 回答:为什么这个php代码返回13而不是3?我真的很困惑

尝试一下

<?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. 然后首先开始循环,然后 $ 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 ,因此不会显示任何内容
,
$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.
}

检查代码中的注释

,

您的代码就是这样,

echo 1; echo 3;

输出13

,

我希望这可以帮助您了解代码的工作原理。

$a=10;
$b=2;
$j=$a/2;
for ($i=0;$i<$j;$i++){
    if ($i % $b == 1)
    echo "output"; 
    echo "$i";
}
本文链接:https://www.f2er.com/3154292.html

大家都在问