Click here to
get yummy grain feed
delivered to your RSS oven

rss

  • Businesswing Design BLOG
  • Assist to join the global market.
5-5-3 for迴圈設計的風險

Date:八月 17, 2010 | Author:bwingnet

for迴圈有三個條件,如果這三個條件彼此間無法搭配,會造成迴圈無法執行或成為無限迴圈。我們可使用以下的例子說明,for迴圈執行時會有哪些變化:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>forerror1:for迴圈的風險 </title></head>
<body><?
$a=0;	
for ($i=1;$i!=10;$i+=2) 
{    echo "i->".$i."<br>";      
     echo "before a->".$a."<br>";
     $a += $i;
     echo "after a->".$a."<br>";
     echo "<hr>";
}
echo $a;
?></body></html>

php_ch5-19【圖19 迴圈設計不當造成無限迴圈,這是執行一段時間後的畫面】

請您看06行語法:

06: for ($i=1;$i!=10;$i+=2)

乍看之下,與前一個for0.php檔案相似,但是我們把這三個條件列表做說明:

$i=1; $i的初始值為1
$i!=10;當$i不等於10的情況下
$i++每跑完一次迴圈$i就加1

我們可以來跑跑看迴圈會怎麼跑

1 當$i=1時 $a+=$i,原本$a=0,$i=1,所以$a=1 $i+=2,所以$i=3
2 當$i=3時 $a+=$i,原本$a=1,$i=3,所以$a=4 $i+=2,所以$i=5
3 當$i=5時 $a+=$i,原本$a=4,$i=5,所以$a=9 $i+=2,所以$i=7
4 當$i=7時 $a+=$i,原本$a=9,$i=7,所以$a=16 $i+=2,所以$i=9
5 當$i=9時 $a+=$i,原本$a=16,$i=9,所以$a=25 $i+=2,所以$i=11
6 當$i=11時 $a+=$i,原本$a=25,$i=11,所以$a=36 $i+=2,所以$i=13

您會發現到$i永遠不等於10,換句話說,永遠符合條件,所以迴圈會不斷的跑。

那以下的條件,請思考是否可以執行?:

<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>forerror2:for迴圈的風險 </title></head>
<body><?
$a=0;	
for ($i=11;$i&lt;=10;$i++)  
{    echo "i->".$i."<br>";      
     echo "before a->".$a."<br>";
     $a += $i;
     echo "after a->".$a."<br>";
     echo "<hr>";
}
echo $a;
?></body></html>

php_ch5-20【圖20 迴圈設計不當造成沒有執行】

請您看06行語法:

06: for ($i=11;$i<=10;$i++)

讓我們來看看這個for迴圈會如何執行:

$i=11; $i的初始值為11
$i<=10;當$i小於等於10的情況下
$i++每跑完一次迴圈$i就加1

由於初始值就不符合條件,所以這個迴圈就沒有執行。

由以上例子可知,for迴圈的三個條件必須互相配合,否則可能一次都不會執行或者變成無限迴圈。

葉建榮 jiannrong@gmail.com

Post to Twitter Post to Plurk Post to Yahoo Buzz Post to Delicious Post to Digg Post to Facebook Post to MySpace Post to Ping.fm Post to Reddit Post to StumbleUpon

相關文章:

  Categories: 網頁程式PHP,網頁設計 | Tags: ,
    

發表迴響

     top