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

237 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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` | 实现二维结构处理 |