PHP5 On Mobile!-PHP5 On Mobile!- |回首頁|加入會員|
PHP5網管實驗室
 線上討論區 繁/簡體
 
  下載 下載 我的訊息 部落格 線上討論區 文件搜尋 線上討論區 線上討論 我的訊息 我的訊息 會員服務 會員服務 回首頁 回首頁 
Skype : jacch.tw [Download] [ Blog ] [ Search ] [ Forum ] [ PM ] [ Member ] [ HOME ]

  文章主目錄 :: php5 教學 :: 判斷及迴圈


[PHP教學]FOR迴圈




迴圈


迴圈是一個程式語言的重覆行為的指令,就是程式會定義一段的程式碼不斷的重覆執行一直到停止的條件出現.在程式設計中的迴圈大致上可以分成幾個主要的指令,For ,While ,foreach , 和函數的遞迴
1.FOR 指令主要是執行一個連續的數值次數的重覆行為。
2.While 指令主要是執行一個條件式的重覆行為。
3.foreach 指令主要是針對陣列內容數的重覆行為。
4.遞迴 算是一種特殊型式的重覆執行

For 迴圈 

For迴圈主要是一個執行二個數值中間的數字的重覆指令。而for的架構大至上如下

For 迴圈: 


 for(起算值運算式;比對運算式;變數增加運算式){
  //重覆執行的次數

第一個欄位表示起始的值,第二個欄位代表運算值,第三個欄為為變數增加值。
所以如果第一個初始值會先設定,接下來帶入第二個欄位進行比對,當第二個欄位傳回true;則帶入第三個欄位進行變數的的變更。
再和第二個欄位比較,接下來不斷的重覆直到。第二個欄位傳回false才會停止。


PHP For迴圈實例:

<?php
//for $x等於 1 而$x 小於等於 10時 迴圈執行,每執行一次迴圈則自動+1<br>

for($x=1;$x<=10;$x++){
 echo 
$x."<br />";

//下面二行為了防止無限迴圈
if($x>15)
  exit;
  
}
?>

執行:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for.php
原始碼:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for.phps

上面的程式執行的結果會從起始值 $x值為1$x 小於等於10 跑了10次。所以結果會是1,2,3,4,5,6,7,8,9,10;
這看起來好像非常的單純就只是把1-10秀出來這麼簡單,其實他是可以在裡面再加上處理的。我們把他做一個累加的方式來看看結果。 



PHP For迴圈的連續計算:

<?php
//指定一個變數$y
$y=0;
//for $x等於 1 而$x 小於等於 10時 迴圈執行,每執行一次迴圈則自動+1<br>
for($x=1;$x<=10;$x++){

 echo 
$x."+$y=".($x+$y)."<br />";
 
 
//相當於 $y=$y+$x;
 
$y+=$x;
 
//下面二行為了防止無限迴圈
if($x>15)
  exit;
  
}
echo 
"數字總數為:"+$y;

?>

執行:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for2.php
原始碼:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for2.phps


上面的例子中你可以看到for在運行的是一個運算式,把變數$y的值當成一個連續值的總數在做數計,你可以看的到在迴圈執行的過程中的每一個連續加總的總值是多少。



FOR迴圈的數字間隔:

<?php
//指定一個變數$y
$y=0;
//for $x等於 1 而$x 小於等於 10時 迴圈執行,每執行一次迴圈則自動+2<br>
for($x=1;$x<=10;$x+=2){

 echo 
$x."+$y=".($x+$y)."<br />";
 
 
//相當於 $y=$y+$x;
 
$y+=$x;
 
//下面二行為了防止無限迴圈
if($x>15)
  exit;
  
}
echo 
"數字總數為:"+$y;

?>

執行:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for3.php
原始碼:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for3.phps


上面的例子我們把原本的第三個間隔值由++($x=x+1)改成了+=2($x=$x+2)
所以中間的間隔是2所以程式的執行變成了 1,3,5,7,9共執行了5次.

For 的巢狀結構


FOR的巢狀結構:

<?php
//外面的$x迴圈
for($x=1;$x<=9;$x++){
  
//$x迴圈內的$y迴圈
   
for($y=1;$y<=9;$y++){
      
//九九乘法
       
echo $x."*".$y."=".($x*$y)."    ";
   
   }
   
//換行
   
echo "<br />";
}

?>

執行:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for4.php
原始碼:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for4.phps

for的巢狀結構是指for 在運行的時候.在迴圈中的迴圈中運行的次數.所以在$x=1時執行了內部的$y迴圈也相對的運行.
所以就就是依上面的例子來看就是執行了9次的內部迴圈.而內部的迴圈也剛好也是9次所以共執行了81次.

或許這樣的例子不夠清楚巢狀的運作方式,所以我們再寫一個更加清楚的例子:

FOR的巢狀結構(星之三角):

<?php
//外面的$x迴圈
for($x=1;$x<=9;$x++){
  
//$x迴圈內的$y迴圈
   
for($y=$x;$y<=9;$y++){
       
//
       
echo "*    ";
   
   }
   
//換行
   
echo "<br />";
}

?>

執行:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for5.php
原始碼:http://www.php5.idv.tw/php5-article/ch2/ch2-05/for5.phps



上面的例子,是我們將$x目前的值帶進了$y迴圈中所產生的一個星星倒三角型.簡單一點的來說.就是:
當$x=1則$y迴圈執行 1,2,3,4,5,6,7,8,9 所以出現了9個星
當$x=2則$y迴圈執行 2,3,4,5,6,7,8,9 所以出現了8個星
 ......
當$x=9則$y迴圈執行 9 所以出現了1個星


所以看了上面的例子你是不是更加的清楚了for迴圈的運作方式呢.

For常見的錯誤:

for經常出現的錯誤是無限迴圈,簡單的說就是第二個欄位不會傳回false;這樣的錯誤不算是程式設計的錯誤,在某些時候無限迴圈是具有他的特殊的用途的。

無限迴圈的實例:

<?php
//外面的$x迴圈
for($x=1;TRUE;$x++){

   //換行
   
echo "<br />";
}

?>

這樣就形成了一個無限迴圈了。所以在設計上如果永遠不會傳回FALSE就請一定要註意了。
例如把把比較運算式寫成四則運算式算是比較容易發生的。





share to plurk share to facebook


手機版([PHP教學]FOR迴圈):
作者: 總理大臣 /日期 / 編修
[PHP教學]PHP的四則運算及運算元
 
[PHP教學]IF 的判斷式
 
[PHP教學]IF .. ELSE IF ... ELSE判斷式
 
[PHP教學]switch 的用法
 
[PHP教學]FOR迴圈
 
[PHP教學]While和Do While迴圈
 
[PHP教學]FOR迴圈和WHILE迴圈的執行效能的比較
 
 

我要幫這一個文章編寫註解!
內容:
 
 








 
 
網站地圖 關於作者 連絡我們 設為首頁  
   
     程式管理: jacch (jack chen)PHP5網管實驗室版權所有
     2001 - 2011 copyright by jacch . All rights reserved.. counter