模数检查除法的余数。
为了让您更轻松地跟踪项目数量,我将从 1 而不是 0 开始 $i。例如
for($i=1; $i <= $count; $i++)
if($i % 2 == 0) echo 'This number is even as it is divisible by 2 with no leftovers! Horray!';
如有疑问,请编写代码片段:
for ($j = 1; $j < 4; $j++)
{
for ($k = 0; $k < $j; $k++)
{
echo "\n\$i % $j == $k: \n";
for ($i = 0; $i < 10; $i++)
{
echo "$i : ";
if ($i % $j == $k)
{
echo "TRUE";
}
echo " \n";
}
}
}
这是输出。用它来弄清楚你需要使用什么:
$i % 1 == 0:
0 : TRUE
1 : TRUE
2 : TRUE
3 : TRUE
4 : TRUE
5 : TRUE
6 : TRUE
7 : TRUE
8 : TRUE
9 : TRUE
$i % 2 == 0:
0 : TRUE
1 :
2 : TRUE
3 :
4 : TRUE
5 :
6 : TRUE
7 :
8 : TRUE
9 :
$i % 2 == 1:
0 :
1 : TRUE
2 :
3 : TRUE
4 :
5 : TRUE
6 :
7 : TRUE
8 :
9 : TRUE
$i % 3 == 0:
0 : TRUE
1 :
2 :
3 : TRUE
4 :
5 :
6 : TRUE
7 :
8 :
9 : TRUE
$i % 3 == 1:
0 :
1 : TRUE
2 :
3 :
4 : TRUE
5 :
6 :
7 : TRUE
8 :
9 :
$i % 3 == 2:
0 :
1 :
2 : TRUE
3 :
4 :
5 : TRUE
6 :
7 :
8 : TRUE
9 :
现在给出答案:
如何检查循环是否处于第二次而不是第三次迭代?
$i % 2 === 0
对于每第三次迭代,您需要:
if ($i % 3 === 0)
如果是特定的第三次迭代,则:
if ($i === 3)
回答问题:
如何检查循环是否处于第二次AND而不是第三次迭代?
&&
。引用官方文档...
示例:
$a && $b
名称: 和
结果:
如果TRUE
和$a
都是$b
。TRUE
因此,对于代码,您需要...
if($i % 2 === 0 && $i % 3 !== 0) {
// Loop is in its second and not its third iteration!
}
我们使用模数来解决这个问题,它返回除以 2 和 2 的余数。
我想应该是:
if ($i % 2 == 0)
试试这个。它应该适用于每第三次迭代:
if ($i % 3 === 0)