---
# System prepended metadata

title: 'C++筆記: 跳躍陳述式（Jump Statements）'
tags: [判斷式, 迴圈]

---

# 跳躍陳述式（Jump Statements）
在C++中，跳躍陳述式（Jump Statements）允許程序控制流從一個點跳轉到另一個點，這些陳述式包括 `break`、`continue` 和 `return`。它們在不同的上下文中用於控制程式的執行流程。

:::danger
### 警告
跳躍陳述式當中還有一個 `goto` 用法，不過因為比較難用，所以在本篇文章中不列入討論。
:::

### 零、方塊
- 方塊位置：條件與迴圈
- 方塊圖片 : 
> #### break 
> ![image](https://hackmd.io/_uploads/B10k30hwyg.png)
> #### continue
> ![image](https://hackmd.io/_uploads/B1lZnC2w1e.png)
> #### return 
> ![image](https://hackmd.io/_uploads/Byqb203vyx.png)

### 一、`break` 的定義及用法

`break` 用於立即終止當前的迴圈或 `switch` 語句，並跳出該結構的執行。

#### 用法範例：

1. **在 `for` 迴圈中使用 `break`**：

```cpp
#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break; // 當 i 等於 5 時，終止迴圈
        }
        cout << "當前值： " << i << endl;
    }
    cout << "迴圈已終止。" << endl;
    return 0;
}
```

2. **在 `while` 迴圈中使用 `break`**：

```cpp
#include <iostream>
using namespace std;

int main() {
    int i = 0;

    while (true) { // 無限迴圈
        if (i >= 5) {
            break; // 當 i 大於等於 5 時，終止迴圈
        }
        cout << "計數： " << i << endl;
        i++;
    }
    cout << "迴圈已終止。" << endl;
    return 0;
}
```

3. **在 `switch` 語句中使用 `break`**：

```cpp
#include <iostream>
using namespace std;

int main() {
    int num = 2;

    switch (num) {
        case 1:
            cout << "數字是 1" << endl;
            break; // 結束 switch
        case 2:
            cout << "數字是 2" << endl;
            break; // 結束 switch
        default:
            cout << "數字不在 1 和 2 之間" << endl;
            break; // 結束 switch
    }

    return 0;
}
```

### 二、`continue` 的定義及用法

`continue` 用於終止當前的迴圈迭代，跳過剩下的代碼，並直接進入下一次迴圈的條件檢查。

#### 用法範例：

1. **在 `for` 迴圈中使用 `continue`**：

```cpp
#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0) {
            continue; // 當 i 為偶數時，跳過後面的代碼，進入下一次迴圈
        }
        cout << "當前奇數值： " << i << endl;
    }
    return 0;
}
```

2. **在 `while` 迴圈中使用 `continue`**：

```cpp
#include <iostream>
using namespace std;

int main() {
    int i = 0;

    while (i < 10) {
        i++;
        if (i % 2 == 0) {
            continue; // 當 i 為偶數時，跳過後面的代碼，進入下一次迴圈
        }
        cout << "當前奇數值： " << i << endl;
    }
    return 0;
}
```

### 三、`return` 的定義及用法

`return` 用於結束函數的執行，並返回一個值（如果函數返回類型不是 `void`），同時控制流回到函數的調用者。

#### 用法範例：

1. **在函數中使用 `return`**：

```cpp
#include <iostream>
using namespace std;

// 計算平方的函數
int square(int num) {
    return num * num; // 返回 num 的平方
}

int main() {
    int number = 5;
    cout << "數字 " << number << " 的平方是 " << square(number) << endl; // 呼叫 square 函數
    return 0;
}
```

2. **使用 `return` 結束 `main` 函數**：

```cpp
#include <iostream>
using namespace std;

int main() {
    cout << "Hello, World!" << endl;
    return 0; // 結束 main 函數並返回 0
}
```

3. **在條件中使用 `return`**：

```cpp
#include <iostream>
using namespace std;

// 檢查數字是否為正數的函數
bool isPositive(int num) {
    if (num > 0) {
        return true; // 如果是正數，返回 true
    }
    return false; // 否則返回 false
}

int main() {
    int number = -3;
    if (isPositive(number)) {
        cout << "數字是正數。" << endl;
    } else {
        cout << "數字不是正數。" << endl;
    }
    return 0;
}
```

### 四、總結

- **`break`**：用於立即終止當前的迴圈或 `switch` 語句，並跳出該結構的執行。
- **`continue`**：用於終止當前的迴圈迭代，跳過剩下的代碼，並直接進入下一次迴圈的條件檢查。
- **`return`**：用於結束函數的執行，並返回一個值（如果需要），同時控制流回到函數的調用者。

### 五、進一步的學習

在學習跳躍陳述式的基礎上，可以探索以下主題：

- 在嵌套的迴圈中如何使用 `break` 和 `continue` 來控制外層和內層迴圈的執行。
- 在不同上下文中使用 `return`，例如回傳指標或結構體。
- 使用 `break` 和 `continue` 進行高效的錯誤處理和狀態檢查。

**By Ericbob**