是否有一个简单的逻辑来实现循环,在deimeter上进行修改?
if $a>b for($i=a; $i>b; $i--)
else for($i=a; $i<b; $i++)
但我需要在一个循环中完成它我不能做像
这样的事情$start = $a<$b? $a : $b;
因为我需要循环始终以$a
开头并转向$b
,或许有另一种方式?我有理由进行低估吗?在我的问题中不清楚的是,人们如果你不理解问题就不要碰它。
答案 0 :(得分:10)
希望这有帮助
$inc = $a < $b ? 1: -1;
for ($i = $a; $i != $b; $i += $inc) {
/* some code here */
}
说明:
第一步是估计增量,即增加或减少$ a到达$ b。
显然,如果$ a&lt; $ b然后需要增量或减少。 $ i + = $ inc是添加+1或-1的通用语句。添加+1是递增,加-1是递减。
最终循环退出条件是$ i!= $ b,希望这个条件在增量/减量中至少满足一次。
答案 1 :(得分:0)
您的问题包含一些逻辑错误。虽然语法是正确的。
if $a<b for($i=a; $i>b; $i--)
此处,$a
小于b
,在for
循环中,您提供的条件$i>b
永远不会满足,因为$i
和$a
已经小于b
。因此,即使一次也不会运行此循环。这对于else
也是一样的,因为这里循环也不会一次执行。
你想要的吗??