嗨,我正在学习 php 并尝试使用以下代码做一个 for 循环
,如下所示:for($x=1; $x<=20; $x++){
echo $x;
$x = $x + 3; //5
echo "<br/>";
}
它是农产品
1
5
9
13
14
但我希望它应该是...
1
5
10
15
20
for ($x = 0; $x <= 20; $x += 5) {
echo ($x == 0 ? 1 : $x), '<br>';
}
或:
foreach (range(0, 20, 5) as $x) {
echo ($x == 0 ? 1 : $x), '<br>';
}
如果没有 1 个额外条件,则无法生成序列,因为增量在第一步中有所不同:
1 + 4 ...
5 + 5
10 + 5
15 + 5
20 + 5
有多个
解决方案。
一个是:
for($x=1; $x<=20; $x++){
if(!($x % 5) || $x==1)
echo $x . "<br />";
}
解释
%
是模运算符。它返回解视休息。
假设$x
是 3,而不是 3 % 5
返回 3,因为结果 3/5 = 0 休息 3
如果其$x
为 10,则返回 0。 10/5 = 2 休息 0
在 if 语句中,我使用 !
-not 运算符。这扭转了结果。
因为if
将 1+(一个或多个(作为true
,将 0-(零和更少(作为false
所以其余 3 个将是积极的(真的(,但在这种情况下,我希望它是假的。所以我用!
来判断真/假
%
- 模数
R
- 休息
1 % 5 = 0 R 1 // would say true to if
2 % 5 = 0 R 2 // would say true to if
3 % 5 = 0 R 3 // would say true to if
4 % 5 = 0 R 4 // would say true to if
5 % 5 = 1 R 0 // would say false to if
6 % 5 = 1 R 1 // would say true to if
and so on...
试试这个。
$x = 1;
for ($j = 1; $j <= 20; $j++) {
echo $x, "<br/>";
if ($x == 1) {
$x = $x + 4;
} else {
$x = $x + 5;
if($x > 20){break;}
}
}
如果此答案适合您,请标记答案。
试试这个:
for($x=1; $x<=20; $x++) {
if($x%5==0 || $x==1) {
echo $x;
echo "<br>";
}
}