# 条件语句

URL: https://caijiao.org/cpp/basic/conditionals
Source: docs/cpp/basic/conditionals.md
Description: 本节将深入探讨 C++ 中的条件语句，包括 'if'、'else'、'else if' 以及 'switch' 语句。通过条件语句，程序可以根据不同的输入或状态执行不同的操作，是控制程序流程的核心工具。

在 C++ 中，条件语句用于根据某些条件决定程序的执行路径。通过条件判断，我们可以让程序根据不同的情况执行不同的操作。

## `if` 语句

最常见的条件语句是 `if` 语句。它通过布尔表达式来判断条件是否为 `true`，若为 `true`，则执行相应的代码块。

```cpp
int a = 10;
if (a > 5) {
    cout << "a 大于 5" << endl;
}
````

## `else` 语句

`else` 语句与 `if` 一起使用，表示在 `if` 条件为 `false` 时执行的代码块。

```cpp
int a = 3;
if (a > 5) {
    cout << "a 大于 5" << endl;
} else {
    cout << "a 小于或等于 5" << endl;
}
```

## `else if` 语句

当需要判断多个条件时，可以使用 `else if`。`else if` 使得多个条件能够按顺序进行检查，直到找到第一个满足的条件。

```cpp
int a = 10;
if (a > 15) {
    cout << "a 大于 15" << endl;
} else if (a > 5) {
    cout << "a 大于 5 但小于等于 15" << endl;
} else {
    cout << "a 小于或等于 5" << endl;
}
```

## `switch` 语句

`switch` 语句是另一种条件判断的方式，它通过检查某个表达式的值，并根据不同的值执行不同的代码块。它通常用于检查一个变量的多个可能值，比多个 `if-else` 语句更加清晰和高效。

```cpp
int a = 2;
switch (a) {
    case 1:
        cout << "a 是 1" << endl;
        break;
    case 2:
        cout << "a 是 2" << endl;
        break;
    case 3:
        cout << "a 是 3" << endl;
        break;
    default:
        cout << "a 不是 1、2 或 3" << endl;
}
```

### `switch` 语句的特点

* `switch` 语句常用于变量值的多重判断，能避免多次使用 `if` 语句。
* `case` 后面跟的值是常量，不能使用变量。
* `break` 语句用于跳出 `switch` 语句块，如果没有 `break`，会继续执行下一个 `case` 语句（即便它的条件不满足）。

## 嵌套条件语句

条件语句可以相互嵌套，即在一个条件语句内再写另一个条件语句。这在需要进行复杂判断时非常有用。

```cpp
int a = 10;
if (a > 5) {
    if (a < 20) {
        cout << "a 在 5 和 20 之间" << endl;
    }
}
```

## 小结

* **`if`、`else`、`else if`** 和 **`switch`** 是 C++ 中最常用的条件语句。
* 使用这些条件语句，可以根据不同的输入、状态或变量值来控制程序的执行流程。
* `switch` 语句提供了多条件判断的一种清晰和高效的方式，特别适合处理离散的常量值判断。

条件语句是控制程序逻辑的重要工具，掌握它们能够帮助你更灵活地编写代码。
