2025-04-19 15:54:56 +08:00
|
|
|
|
# 3. 程序基本语句
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
程序语句是构成程序逻辑的核心部分,掌握基本语句的使用,是编程入门的关键。本章将系统讲解输入输出、条件判断、循环结构等常用语句。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
## 【2】输入输出语句与赋值语句
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ cin 和 cout(C++ 风格)
|
|
|
|
|
```cpp
|
|
|
|
|
#include <iostream>
|
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
|
|
int main() {
|
|
|
|
|
int a;
|
|
|
|
|
cin >> a; // 输入一个整数
|
|
|
|
|
cout << "你输入的是: " << a << endl;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
- `cin >>`:从键盘读取输入。
|
|
|
|
|
- `cout <<`:输出内容到屏幕。
|
|
|
|
|
- `<< endl`:换行输出。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ scanf 和 printf(C 风格)
|
|
|
|
|
```cpp
|
|
|
|
|
#include <stdio.h>
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int main() {
|
|
|
|
|
int a;
|
|
|
|
|
scanf("%d", &a); // 输入一个整数
|
|
|
|
|
printf("你输入的是: %d\n", a);
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
- `%d` 表示格式化整数,`&a` 是地址符,表示把输入值存入变量 a。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ 赋值语句
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int x;
|
|
|
|
|
x = 10;
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 把右边的表达式结果赋值给左边的变量。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ 复合语句(代码块)
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
|
|
|
|
{
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int a = 5;
|
|
|
|
|
int b = 6;
|
2025-04-19 15:54:56 +08:00
|
|
|
|
cout << a + b << endl;
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 大括号 `{}` 包裹的是复合语句,表示多个语句作为一个整体执行。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
## 【2】条件语句(选择结构)
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ if 语句
|
|
|
|
|
```cpp
|
|
|
|
|
int score = 85;
|
|
|
|
|
if (score >= 60) {
|
|
|
|
|
cout << "及格" << endl;
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ if-else 语句
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
if (score >= 90) {
|
|
|
|
|
cout << "优秀" << endl;
|
2025-04-19 15:54:56 +08:00
|
|
|
|
} else {
|
2025-04-19 20:04:02 +08:00
|
|
|
|
cout << "继续努力" << endl;
|
2025-04-19 15:54:56 +08:00
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ 多层 if-else
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
|
|
|
|
if (score >= 90) {
|
|
|
|
|
cout << "优秀";
|
2025-04-19 20:04:02 +08:00
|
|
|
|
} else if (score >= 75) {
|
2025-04-19 15:54:56 +08:00
|
|
|
|
cout << "良好";
|
2025-04-19 20:04:02 +08:00
|
|
|
|
} else if (score >= 60) {
|
|
|
|
|
cout << "及格";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
} else {
|
2025-04-19 20:04:02 +08:00
|
|
|
|
cout << "不及格";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ switch 语句
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int option = 2;
|
|
|
|
|
switch(option) {
|
2025-04-19 15:54:56 +08:00
|
|
|
|
case 1:
|
2025-04-19 20:04:02 +08:00
|
|
|
|
cout << "选项一";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
break;
|
|
|
|
|
case 2:
|
2025-04-19 20:04:02 +08:00
|
|
|
|
cout << "选项二";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
cout << "无效选项";
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- `switch` 适用于整型、字符型变量。
|
|
|
|
|
- 每个 `case` 后面用 `break` 防止穿透执行。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
## 【2】循环语句(重复结构)
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ for 循环
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
for (int i = 0; i < 5; i++) {
|
2025-04-19 15:54:56 +08:00
|
|
|
|
cout << i << " ";
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 固定次数循环,通常用于计数。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ while 循环
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int i = 0;
|
|
|
|
|
while (i < 5) {
|
2025-04-19 15:54:56 +08:00
|
|
|
|
cout << i << " ";
|
|
|
|
|
i++;
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 先判断再执行,适用于条件满足才循环的情况。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ do while 循环
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int i = 0;
|
2025-04-19 15:54:56 +08:00
|
|
|
|
do {
|
|
|
|
|
cout << i << " ";
|
|
|
|
|
i++;
|
2025-04-19 20:04:02 +08:00
|
|
|
|
} while (i < 5);
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 至少执行一次,再判断条件。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
## 【3】多层循环语句
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ 二重循环示例:九九乘法表
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
for (int i = 1; i <= 9; i++) {
|
|
|
|
|
for (int j = 1; j <= i; j++) {
|
|
|
|
|
cout << j << "*" << i << "=" << i * j << "\t";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
```
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- 外层控制行数,内层控制列数。
|
|
|
|
|
- 多层嵌套常用于处理二维数据(如矩阵、图形、表格等)。
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
---
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
### ✅ 实际应用:输出矩阵所有元素
|
2025-04-19 15:54:56 +08:00
|
|
|
|
```cpp
|
2025-04-19 20:04:02 +08:00
|
|
|
|
int matrix[2][3] = {
|
|
|
|
|
{1, 2, 3},
|
|
|
|
|
{4, 5, 6}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
for (int i = 0; i < 2; i++) {
|
|
|
|
|
for (int j = 0; j < 3; j++) {
|
|
|
|
|
cout << matrix[i][j] << " ";
|
2025-04-19 15:54:56 +08:00
|
|
|
|
}
|
|
|
|
|
cout << endl;
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
## ✅ 小结
|
2025-04-19 15:54:56 +08:00
|
|
|
|
|
2025-04-19 20:04:02 +08:00
|
|
|
|
- `cin/cout` 和 `scanf/printf` 是基础输入输出方式。
|
|
|
|
|
- `if`、`switch` 用于做出选择。
|
|
|
|
|
- `for`、`while`、`do while` 是常用循环方式。
|
|
|
|
|
- 多层嵌套循环用于复杂数据结构处理。
|
|
|
|
|
- 编写循环时要注意终止条件,防止死循环。
|