# 3. 程序基本语句

程序是由一条条“语句”组成的，每条语句都有其明确的功能，例如输入、输出、赋值、判断、循环等。掌握基本语句，是学会编写程序的第一步。

---

## 📥输入、输出与赋值语句

### 1. 输入语句

用于从用户输入中获取数据。

- **cin（C++）**
  ```cpp
  int a;
  cin >> a; // 读取一个整数并存入变量 a 中
  ```
  多个变量也可连续读取：
  ```cpp
  int x, y;
  cin >> x >> y;
  ```

- **scanf（C）**
  ```c
  int a;
  scanf("%d", &a); // %d 表示读取一个整数
  ```

  多变量读取：
  ```c
  int x, y;
  scanf("%d %d", &x, &y);
  ```

### 2. 输出语句

用于将数据展示到终端（控制台）上。

- **cout（C++）**
  ```cpp
  int a = 10;
  cout << "a = " << a << endl;
  ```

- **printf（C）**
  ```c
  int a = 10;
  printf("a = %d\n", a);
  ```

### 3. 赋值语句

将右侧的值赋给左侧变量，是程序中最基本的操作之一。

```cpp
int a;
a = 5;
a = a + 10; // 赋值时，先计算右边的值
```

### 4. 复合语句

复合语句即“语句块”，由一对花括号 `{}` 包裹起来的多条语句，常用于条件或循环控制中：

```cpp
{
    int a = 1;
    int b = 2;
    cout << a + b << endl;
}
```

---

## 🔀选择结构语句

程序根据条件不同，执行不同的操作路径，这类语句称为“选择结构”。

### 1. if 语句

用于根据条件判断是否执行某些语句。

```cpp
if (a >= 60) {
    cout << "及格";
} else {
    cout << "不及格";
}
```

#### 多条件判断

```cpp
if (score >= 90) {
    cout << "优秀";
} else if (score >= 80) {
    cout << "良好";
} else {
    cout << "继续加油";
}
```

### 2. switch 语句

适用于“固定选项”的多分支判断。

```cpp
int op = 2;
switch (op) {
    case 1:
        cout << "选项1";
        break;
    case 2:
        cout << "选项2";
        break;
    default:
        cout << "无效选项";
}
```

### 3. 多层条件语句（嵌套）

```cpp
if (x > 0) {
    if (x % 2 == 0) {
        cout << "正偶数";
    } else {
        cout << "正奇数";
    }
} else {
    cout << "非正数";
}
```

---

## 🔁循环结构语句

循环语句用于让程序重复执行某些操作。

### 1. for 语句（已知次数）

```cpp
for (int i = 1; i <= 5; i++) {
    cout << i << " ";
}
```

结构包含三部分：
- 初始化：`int i = 1`
- 条件判断：`i <= 5`
- 更新表达式：`i++`

### 2. while 语句（先判断再执行）

```cpp
int i = 1;
while (i <= 5) {
    cout << i << " ";
    i++;
}
```

若初始条件不成立，则一次都不执行。

### 3. do while 语句（先执行后判断）

```cpp
int i = 1;
do {
    cout << i << " ";
    i++;
} while (i <= 5);
```

不管条件如何，至少执行一次。

---

## 🔃多层循环语句（嵌套循环）

循环内部再嵌套一个循环，称为“多层循环”，适用于图形输出、二维数组、表格处理等。

### 示例：打印矩形

```cpp
for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 5; j++) {
        cout << "* ";
    }
    cout << endl;
}
```

输出：

```
* * * * * 
* * * * * 
* * * * * 
```

### 示例：九九乘法表

```cpp
for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        cout << j << "*" << i << "=" << j*i << "\t";
    }
    cout << endl;
}
```

输出：

```
1*1=1	
1*2=2	2*2=4	
1*3=3	2*3=6	3*3=9	
...
```

---

## 🧩 小结表

| 功能类别 | 相关语句 | 描述 |
|----------|-----------|------|
| 输入语句 | `cin`, `scanf` | 从用户获取数据 |
| 输出语句 | `cout`, `printf` | 向屏幕输出数据 |
| 赋值语句 | `=` | 设置变量的值 |
| 条件语句 | `if`, `switch`, 嵌套 `if` | 根据条件决定执行路径 |
| 循环语句 | `for`, `while`, `do while` | 实现重复执行 |
| 多层循环 | `for` 嵌套 `for` 等 | 实现二维结构处理 |

