代码如下 -
<?php
$i = 5;
while (--$i > 0 || ++$i)
{
print $i;
}
?>
正确答案是4321111.......
。但它怎么可能从4开始,它应该只是从5开始。在我看来,答案应该是55555555......
。
答案 0 :(得分:4)
以4开头,因为首先评估此语句(--$i > 0 )
是pre decrement
,这意味着它先递减然后计算while循环
所以这里是checking whether i is greater than 0 or else increment i by 1
所以prints 4321
,当我达到0时,--$i > 0
语句不会被评估,因为我变为0所以评估或部分是+1
所以结果变成4321111111 .................
答案 1 :(得分:1)
如果你在循环语句中给出预递减运算符作为条件,它将以小于最初分配的值的一个开始。这就是它从4而不是5开始的原因。