1

当我编写代码时,我必须使用循环,例如

$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--;
}
4

4 回答 4

4

只需将您的“基本情况”更改为$i > 0

或者,将运算符更改为$i >= 1

于 2012-09-28T23:49:55.780 回答
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
于 2012-09-29T00:02:22.197 回答
0

为了更清楚地解释,您是说在循环中执行代码 if$i > 1

所以如果 $i1 那么它不会执行代码。1 不大于 1。

正如 lojik 所说,使用$i > 0$i >= 1

于 2012-09-28T23:55:23.897 回答
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 > 0 或 $i >= 1,因此当 $i 等于 1 时,条件通过并停止,因为在下一个循环中,$i 小于比较值(在您的示例中 1 )。在 for 循环之后,如果您检查 $i 的值,您将看到它等于 0,这不符合条件。

于 2012-09-29T00:04:18.180 回答