是否有一个简单的逻辑来实现for循环,取决于分隔符?
if $a>b for($i=a; $i>b; $i--)
else for($i=a; $i<b; $i++)但我需要它在一个循环中完成,我不能做这样的事情
$start = $a<$b? $a : $b;因为我需要循环总是从$a开始,然后到$b,也许还有其他方法,我有理由否决吗?在我的问题中不清楚的是,人们如果你不理解问题,请不要触摸它。
发布于 2013-07-03 14:17:26
希望这能有所帮助
$inc = $a < $b ? 1: -1;
for ($i = $a; $i != $b; $i += $inc) {
/* some code here */
}解释:
第一步是估计增量,这意味着是增加还是减少$a以达到$b。
显然,如果$a < $b,则需要递增,否则将递减。$i += $inc是添加+1或-1的通用语句。加+1表示递增,加-1表示递减。
最终,循环退出条件是$i != $b,希望这个条件在增量/减量中至少满足一次。
发布于 2013-07-03 14:35:43
你的问题包含一些逻辑错误。尽管语法是正确的。
if $a<b for($i=a; $i>b; $i--)这里,$a比b小,在for循环中,你给出的条件$i>b永远不会满足,因为$i和$a已经比b小了。所以,这个循环一次也不会运行。这对于else也是一样的,因为here也不会执行一次循环。
这就是你想要的..?
https://stackoverflow.com/questions/17440888
复制相似问题