doc/notebook/docs/NOI竞赛大纲/二.C++程序设计/3.程序基本语句.md

237 lines
3.9 KiB
Markdown
Raw Normal View History

# 3. 程序基本语句
程序是由一条条“语句”组成的,每条语句都有其明确的功能,例如输入、输出、赋值、判断、循环等。掌握基本语句,是学会编写程序的第一步。
---
## 📥输入、输出与赋值语句
### 1. 输入语句
用于从用户输入中获取数据。
- **cinC++**
```cpp
int a;
cin >> a; // 读取一个整数并存入变量 a 中
```
多个变量也可连续读取:
```cpp
int x, y;
cin >> x >> y;
```
- **scanfC**
```c
int a;
scanf("%d", &a); // %d 表示读取一个整数
```
多变量读取:
```c
int x, y;
scanf("%d %d", &x, &y);
```
### 2. 输出语句
用于将数据展示到终端(控制台)上。
- **coutC++**
```cpp
int a = 10;
cout << "a = " << a << endl;
```
- **printfC**
```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` 等 | 实现二维结构处理 |