2012-10-20 145 views
0

當您嘗試這個代碼的結果是... ...數爲1與做,而爲什麼在這種情況下值的變化?

<?php 
$i=1; 
do 
    { 

    echo "The number is " . $i . "<br />"; 
    $i++; 

    } 
while ($i==10); 
?> 

但是當你改變了這個代碼是這樣的結果是2

<?php 
$i=1; 
do 
    { 

    $i++; 
     echo "The number is " . $i . "<br />"; 


    } 
while ($i==10); 
?> 

爲什麼結果而改變..?

+1

爲什麼它不會改變?你的問題很奇怪,爲什麼你會期望相同的輸出? – Mat

+0

好的,我會改變它......改變結果的原因是什麼? – user1673473

回答

2

$ i ++;是post increment operator so it will increment value by 1 on next line它目前的線路上使用相同的值

第一種情況:你正在做的回聲$我,然後做增量

第二種情況:你增加$我自然是回聲語句之前++等等將回波線上的值增加1

0

由於您正在做兩件不同的事情,因此會得到不同的結果。在第一個代碼片段中,將$i設置爲1的值,將其回顯出來,然後增加$i

在第二代碼段,設置$i1,增加它(即,給它的2的值)然後回聲$i,現在具有的2值。

0

是的,結果會有所不同。在第一種情況下,您在印刷後遞增。而在第二種情況下,您在印刷前遞增

0

在這兩種情況下,do-while循環的第一次迭代都保證運行。條件僅在迭代結束時被檢查。

並且在情況1中您已經在增加之前打印變量。所以它顯示1.在case2中,您在增加它之後打印變量。所以它顯示2.

相關問題