# 9/21 迴圈(While、Do...While、For、Foreach) > 當有需要重複執行的程式碼時,可以使用迴圈來處理,就可以省去多餘的程式碼 > 迴圈在判斷條件時會持續重複執行 [運算單位](https://na872043.pixnet.net/blog/post/161015093-php-%E5%9F%BA%E7%A4%8E%E6%95%99%E5%AD%B8(%E4%B8%89)---%E9%81%8B%E7%AE%97%E5%96%AE%E4%BD%8D) ### While迴圈 寫法: ```php= while(條件判斷){ 程式碼 } ``` 實作: ```php= $int = 1; while( $int < 5 ){ echo $int; $int++; // 輸出 // 1 // 2 // 3 // 4 } ``` 說明: Step1. 判斷條件`$int`是否小於5 Step2. 條件未成立,停止迴圈,如果條件成立,執行程式碼並重複執行 --- ### do...while迴圈 寫法: ```php= do{ 程式碼 }while(條件判斷); ``` 實作: ```php= $int = 0; do{ echo $int++; // 輸出 // 1 // 2 // 3 // 4 }while($int < 5); ``` 說明: Step1. 執行程式碼 Step2. 判斷條件`$int`是否小於5,如果條件成立,停止迴圈 --- ### For迴圈 寫法: ```php= for(初始化變數;判斷條件;更改數值){ 程式碼 } ``` 實作: ```php= for($int = 0;$int < 5;$int ++){ echo $int . " + 1"; // 輸出 // 0 + 1 // 1 + 1 // 2 + 1 // 3 + 1 // 4 + 1 } ``` 說明: Step1. 初始化變數`$int`的值為 0 Step2. 判斷條件`$int`是否小於5,若條件未成立停止迴圈 Step3. 執行程式碼 Step4. 更改數值`$int`加1 --- ### Foreach迴圈 說明: foreach會將陣列內的所有元素取出來在每取出一次元素時執行程式碼,直到所有元素被取出過 寫法: 1. 取出索引(key)與值(value) ```php= foreach(陣列 as 索引 => 值){ 程式碼 } ``` 2. 只取值(value) ```php= foreach(陣列 as 值){ 程式碼 } ``` 實作: ```php= $array = ['A' => 'apple' , 'B' => 'bee' , 'C' => 'cat']; // 取出索引與值 foreach($array as $key => $value){ echo $key . " asd " . $value; // 輸出 // A asd apple // B asd bee // C asd cat } // 取出值 foreach($array as $value){ echo $value; // 輸出 // apple // bee // cat } ``` --- 題目: 1. 使用For 輸出1,3,5,7,9 2. 使用While 輸出9,7,5,3,1 3. 使用迴圈輸出一個一維陣列的座位表 例: 1 2 3 4 5 6 7 8 9 10 11 12.. 到50 4. 使用 Foreach 與下列的陣列 輸出 key 跟 value ```php= $array = ['user1'=>'60','user2'=>'78','user3'=>'36','user4'=>'98']; ``` 5. 一次只能輸出一個字,使用迴圈輸出以下字串 例: 11111 11111 11111 11111 11111 6. 使用迴圈跑整數1-50,但只輸出大於25 且小於45的 [下一篇](/01Jelx7ATvWYtEmE701gyQ)