# 迴圈
----
## 迴圈的用途
迴圈可以簡短需要重複執行程式,也可以用在不知道要執行多少次(或什麼時候要停)的時候。
除此之外,迴圈內的值也可以每次有一些差異。
---
# while迴圈
while迴圈會在某個條件為真的時候,
不斷的執行內部的程式。
----
## 用法
```cpp
while(布林值){
一段程式
}
```
小括號裝布林值,也可以直接放比較、邏輯運算。
如果為`true`,就會進行一次迴圈,然後再看一次。
如果為`false`,就會結束迴圈。
大括號裝布林值成立時會執行的程式。
----
## 範例
```cpp
int i=0; //i先設為0
while(i<10){ //只要i<10,裡面的就會執行。
cout<<i<<' ';
i+=3 //每次把i加3。
}
cout<<'\n'; //換行
```
結果
```
0 3 6 9
```
----
## 不斷輸入
如果要輸入直到結束(EOF),可以使用while。
如果沒辦法cin的時候,會回傳false,就可以跳出while迴圈。
```cpp
int n;
while(cin>>n){
//一段程式
}
```
---
# for迴圈
for迴圈和while迴圈很像,不過小括號
分成了三個部分。
----
## 用法
```cpp
for(開頭; 判斷; 操作){
一段程式
}
```
開頭:通常是宣告或指派,偶爾會空著。
判斷:一個布林值,和while的條件一樣。
操作:每次迴圈內執行結束時會執行一次。
----
## 範例
```cpp
for(int i=0; i<10; i+=2){ //i先設為0,接著只要i比10小,就不斷執行
//裡面的程式,並且在每次執行完之後把i加2。
cout<<i<<' ';
}
cout<<'\n';
```
結果
```
0 2 4 6 8
```
補充:如果要在內部改變i的值也是可以的。
---
# do...while迴圈
do while迴圈和while迴圈幾乎一模一樣,只是判斷是在每次執行結束後,而不是執行前。
也就是說至少會執行一次。
----
## 用法
```cpp
do{
一段程式
}while(布林值);
```
需要注意的是這裡的while()後有分號,
而之前的while()和for()後都沒有分號
---
# 巢狀迴圈
巢狀迴圈是個概念,指的是一個迴圈裡裝著另一個迴圈。
---
# 迴圈控制
迴圈控制是除了每次執行的判斷式之外,可以在迴圈中控制迴圈執行的程式。
----
## break跳出
break的用法非常簡單,只要呼叫break,就會直接跳出這一層迴圈,並且不會執行for和do while尾部的程式。
----
## continue繼續
continue會跳過這一輪迴圈後面的東西,直接到結尾執行和判斷。
----
## 範例
```cpp
for(int i=4; i<15; i++){
if(i==6) continue; //如果碰到6,就直接跑下一圈(7)。
if(i%3==0) break; //如果碰到3的倍數,就跳出迴圈,
//但6因為先被跳過,所以不會跳出
cout<<i<<' ';
}
cout<<i<<'\n';
```
結果
```
4 5 7 8 9
```
{"description":"迴圈可以簡短需要重複執行程式,也可以用在不知道要執行多少次(或什麼時候要停)的時候。\n除此之外,迴圈內的值也可以每次有一些差異。","title":"迴圈","contributors":"[{\"id\":\"00ad9127-6491-4b3d-829b-7847a217f8e5\",\"add\":1804,\"del\":168}]"}