当我编写代码时,我必须使用循环,例如
$six = 6;
for ($i = $six; $i > 1; $i--) {
echo $i."<br>";
}
输出
6
5
4
3
2
我需要它输出1我知道我可以做for ($i = 6; $i >= 1; $i--)
或
for ($i = $six+1; $i > 1; $i--)
在评估中,但它太混乱了!
事实上,在使用for
语句时,我总是感到困惑。
编辑:令人困惑,因为我不想倒退..我喜欢在条件$six > 1
为真时运行循环,而是在$six = 1
之类的条件之前满足。
我想的相反方式
loop_before ($six==1) {
echo $six.<br />;
$six--;
}
即使这个也不会输出654321 ...猜我只需要回到学校。 得做了
loop_before ($six<1) {
echo $six.<br />;
$six--;
}
答案 0 :(得分:4)
只需将“基本案例”更改为$i > 0
或者,将运算符更改为$i >= 1
答案 1 :(得分:1)
这种混淆可能不仅适用于for()
语句,也适用于其他类型的循环。您可以使用$six >= 1
或$six > 0
示例1
$six = 6;
do {
echo $six . "<br>";
$six --;
} while ( $six >= 1 );
示例2
$six = 6;
for($i = $six; $i >= 1; $i --) {
echo $i . "<br>";
}
示例3
$six = 6;
while ( $six >= 1 ) {
echo $six . "<br>";
$six --;
}
最后,您可能决定不使用任何默认的PHP循环
$six = 6;
__loop($six);
function __loop($x) {
echo $x . "<br>";
$x --;
($x < 1) ? $x : __loop($x);
}
他们都将返回相同的东西
6
5
4
3
2
1
答案 2 :(得分:0)
为了更清楚地解释一下,如果$i > 1
因此,如果$ i 1,那么它将不会执行代码。 1不大于1.
正如lojik所说,使用$i > 0
或$i >= 1
答案 3 :(得分:0)
在英语中,for循环语法是这样做的:
At the start of the loop, $i is equal to $six.
Run the loop 'while' $i is greater than 1.
At the end of each running on the looping statement, decrement 1 from $i.
因此,当$ i递减到值1时,条件语句$i > 1
不再返回true,因为它检查$ i是否大于1.
像lojik所说,使用$ i&gt; 0或$ i&gt; = 1,因此当$ i等于1时,条件通过并停止,因为在下一个循环中,$ i小于比较值(在您的示例1中)。在for循环之后,如果你检查了$ i的值,你会看到它等于0,这使条件失败。