# 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)