【问题标题】:why does this php code return me 13 and not 3? I'm really confused为什么这个 php 代码返回 13 而不是 3?我真的很困惑
【发布时间】:2020-03-02 15:06:11
【问题描述】:

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

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

【问题讨论】:

  • 我认为它更像是 1 和 3 而不是 13
  • echo 1; echo 3; 输出13
  • 你想做什么?用这段代码?
  • 在新行中打印所有内容。另外,这有点像错字。很快就会关闭。

标签: php for-loop echo mod


【解决方案1】:

试试这个

<?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 所以什么都不显示

【讨论】:

    【解决方案2】:
    $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.
    }
    

    检查您的代码中编写的 cmets

    【讨论】:

      【解决方案3】:

      你的代码是这样的,

      echo 1; echo 3;
      

      输出 13

      【讨论】:

        【解决方案4】:

        我希望这将帮助您了解您的代码是如何工作的。

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

        【讨论】:

        • will help you understand 没有评论和描述?
        • 刚刚添加了输出字符串,这样他就知道 1 和 3 是单独的输出。
        猜你喜欢
        • 2015-04-02
        • 2021-08-10
        • 1970-01-01
        • 1970-01-01
        • 2020-10-18
        • 1970-01-01
        • 1970-01-01
        • 2023-02-24
        • 1970-01-01
        相关资源
        最近更新 更多