【发布时间】:2014-10-25 17:32:26
【问题描述】:
我有两个变量 x 和 y
如果 x = 5 和 y = 10 我想打印
5
6
7
8
9
10
如果 x = 10 和 y = 5 那么我想打印
10
9
8
7
6
5
我已经使用 IF 在 2 Loop 中编写了这段代码
是否有任何逻辑可以使用单个循环打印此内容
【问题讨论】:
我有两个变量 x 和 y
如果 x = 5 和 y = 10 我想打印
5
6
7
8
9
10
如果 x = 10 和 y = 5 那么我想打印
10
9
8
7
6
5
我已经使用 IF 在 2 Loop 中编写了这段代码
是否有任何逻辑可以使用单个循环打印此内容
【问题讨论】:
这比其他答案简单得多:
foreach (range($x, $y) as $number) {
echo $number . "<BR>";
}
【讨论】:
foreach (range(1, 10000000) as $number) /*do nothing*/ ; 之类的东西,它会耗尽通常的 128M 限制。
$increment = ($x < $y) ? 1 : -1;
for ($i = $x; $i != $y; $i += $increment) {
echo $i;
}
【讨论】:
这应该适合你:
<?php
$x = 10;
$y = 5;
for ($i = 0; $i <= abs($x-$y); $i++) {
if ($x > $y)
echo $x-$i . "<br />";
elseif($x < $y)
echo $x+$i . "<br />";
}
?>
【讨论】:
你正在寻找这个:
<?php
$x = 5;
$y = 10;
while ($x != $y) { // this loop prints the numbers until they are equal
if ($x < $y) echo $x++ . "\n\n"; // if x < y print and increment x
else echo $x-- . "\n\n"; // else print and decrement x
}
echo $x . "\n\n"; // now the two nos are equal, print the no itself
【讨论】:
一个循环,每次迭代一个条件
<?php
$x = 5;
$y = 10;
$start = $x;
$step = $x < $y ? 1 : -1;
$stop = $y + $step;
for ($i = $start; $i != $stop; $i+=$step) {
echo $i . "\n";
}
【讨论】: