2017-08-08 99 views
0

下面的代碼的代碼是爲後續我有點困惑與PHP

<?php 
$i = 5; 
while (--$i > 0 || ++$i) 
{ 
    print $i; 
} 
?> 

正確的答案是4321111.......。但是,如何從4開始,它應該只是從5 STRAT在我看來,答案應該是55555555......

+0

你想要什麼輸出獲得? –

+0

' - $ i'是預減 – JYoThI

回答

4

它有4個開始,因爲這種說法是第一(--$i > 0)

這是pre decrement評估,這意味着它遞減第一,然後所以這裏是checking whether i is greater than 0 or else increment i by 1

評估while循環

所以prints 4321,當i達到0時,--$i > 0語句未評價爲i變爲0,這樣或部分被評估,其是1

所以結果就變成4321111111 .................

+0

怎麼樣的條件,即++ $ i的第二部分??? – Umar

+0

看到你會明白的答案||被稱爲或,所以當語句之一爲真,將進行評估,這意味着如果 - $ I> 0獲得假++ $我會被執行 – Exprator

+0

太謝謝你了!明白了! – Umar

1

如果你給預減運算符作爲循環語句的條件會比分配值一開始少原來 。這就是它從4開始而不是5開始的原因。