# 循环结构

URL: https://caijiao.org/python/ch03/loop
Source: docs/python/ch03/loop.md
Description: 本章节将介绍 Python 中的循环结构。你将学习如何使用 'for' 循环和 'while' 循环来迭代数据或重复执行代码块。

在编程中，循环是一种非常重要的控制结构，用于重复执行某段代码。[Python](/python/) 提供了 `for` 循环和 `while` 循环两种基本的循环结构。

## `for` 循环

`for` 循环用于遍历一个可迭代的对象（如列表、元组、字符串等），并对每一个元素执行相应的操作。

### 基本语法

```python
for item in iterable:
    # 对每个 item 执行的操作
```

示例：

```python
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)
```

输出：

```
apple
banana
cherry
```

在这个例子中，`for` 循环遍历列表 `fruits`，并对每个元素打印出来。

### `range()` 函数

`range()` 函数用于生成一个整数序列，常与 `for` 循环一起使用。`range()` 可以接受一个、两个或三个参数，分别表示起始值、结束值和步长。

示例：

```python
for i in range(5):  # 从 0 到 4（不包括 5）
    print(i)
```

输出：

```
0
1
2
3
4
```

可以指定起始值和步长：

```python
for i in range(1, 10, 2):  # 从 1 到 9（不包括 10），步长为 2
    print(i)
```

输出：

```
1
3
5
7
9
```

## `while` 循环

`while` 循环在给定的条件为 `True` 时重复执行代码块。它通常用于当你不知道循环次数时。

### 基本语法

```python
while condition:
    # 当 condition 为 True 时执行的操作
```

示例：

```python
count = 0
while count < 5:
    print(count)
    count += 1
```

输出：

```
0
1
2
3
4
```

在这个例子中，`while` 循环在 `count` 小于 5 时一直执行，直到条件不满足。

## `break` 和 `continue` 语句

- `break`：跳出当前循环。
- `continue`：跳过当前循环的剩余部分，直接进入下一次循环。

### `break` 示例：

```python
for i in range(5):
    if i == 3:
        break  # 当 i 为 3 时跳出循环
    print(i)
```

输出：

```
0
1
2
```

### `continue` 示例：

```python
for i in range(5):
    if i == 3:
        continue  # 跳过当前的 i == 3
    print(i)
```

输出：

```
0
1
2
4
```

## 嵌套循环

你可以在一个循环内部再使用另一个循环，形成嵌套循环。

### 示例：

```python
for i in range(3):
    for j in range(2):
        print(f"i = {i}, j = {j}")
```

输出：

```
i = 0, j = 0
i = 0, j = 1
i = 1, j = 0
i = 1, j = 1
i = 2, j = 0
i = 2, j = 1
```

## 总结

- `for` 循环用于遍历可迭代对象，常与 `range()` 一起使用。
- `while` 循环在给定条件为 `True` 时重复执行代码，适用于需要根据条件不断重复执行的场景。
- `break` 用于退出循环，`continue` 用于跳过当前循环的剩余部分。
- 嵌套循环可以在一个循环中使用另一个循环，处理更复杂的迭代任务。

掌握循环结构是编写高效程序的基础。
