一、程序基本结构
1. 顺序结构
-
程序从
main函数开始执行 -
按代码书写顺序逐条执行
-
执行到
main函数的return 0结束
2. 逻辑表达式
关系运算符
< > <= >= == !=
-
表达式结果:真(true/1) 或 假(false/0)
-
防错技巧:常量放左边
if (5 == a) // 如果误写为 5 = a 会编译报错
逻辑运算符
逻辑与 (&&) - 真值表
| 左操作数 | 右操作数 | 结果 |
|---|---|---|
| true | true | true |
| true | false | false |
| false | true | false |
| false | false | false |
逻辑或 (||) - 真值表
| 左操作数 | 右操作数 | 结果 |
|---|---|---|
| true | true | true |
| true | false | true |
| false | true | true |
| false | false | false |
逻辑非 (!)
!true = false !false = true
短路特性
int a = 0, b = 0; a++ && b++; // 左侧为0,右侧不执行 ++a || b++; // 左侧为1,右侧不执行
三目运算符
表达式1 ? 表达式2 : 表达式3;
-
结合方向:自右至左
-
表达式1为真 → 返回表达式2的值
-
表达式1为假 → 返回表达式3的值
二、分支结构
1. if 分支
简单分支
if (表达式) {
语句块1;
} else {
语句块2;
}
阶梯分支
if (表达式1) {
语句块1;
} else if (表达式2) {
语句块2;
} else {
语句块3;
}
嵌套分支
if (表达式1) {
语句块1;
if (表达式2) {
语句块2;
} else {
语句块3;
}
} else {
语句块4;
}
注意事项
-
if 后面不要跟分号(逻辑错误)
-
if 可单独使用,else 必须配合 if
-
不加大括号默认控制一句代码
-
避免深层次嵌套(建议不超过5层)
2. switch 分支
基本语法
switch (整型表达式) {
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
default:
语句块3;
}
嵌套switch
switch (整型表达式1) {
case 常量1:
case 常量2:
switch (整型表达式2) {
case 常量3:
语句块1;
break;
default:
语句块2;
}
break;
default:
语句块3;
}
重要特性
-
switch 后必须是整型表达式
-
case 后必须是常量
-
只进行一次判断,顺序执行直到遇到 break
-
里层 switch 结束后不加 break 会继续执行外层代码
三、循环结构
1. 为什么需要循环
-
重复执行功能代码
-
提高代码复用性
-
处理重复性任务和批量数据
2. 循环三要素
-
循环变量初始化 - 循环开始前的准备
-
循环条件检测 - 判断是否继续执行
-
循环变量更新 - 避免死循环
3. 四种循环结构
while 循环
while (表达式) {
循环体语句;
}
特点:先判断条件,再执行循环体
示例
int i = 1; // 初始化
while (i <= 5) { // 条件检测
cout << "当前值: " << i << endl;
i++; // 变量更新
}
死循环形式
while (1) {
// 循环体
if (退出条件) break;
}
do-while 循环
do {
循环体语句;
} while (表达式);
特点:先执行循环体,再判断条件(至少执行一次)
示例
int j = 1;
do {
cout << "do-while循环 - 当前值: " << j << endl;
j++;
} while (j <= 5);
for 循环
for (表达式1; 表达式2; 表达式3) {
循环体语句;
}
执行流程:
-
表达式1 - 循环初始化(执行一次)
-
表达式2 - 条件检测(真→执行循环体,假→结束)
-
执行循环体
-
表达式3 - 循环变量更新
-
回到步骤2
示例
for (int k = 1; k <= 5; k++) {
cout << "for循环 - 当前值: " << k << endl;
}
死循环形式
for (;;) {
// 循环体
if (退出条件) break;
}
goto 循环
标签名:
// 代码
goto 标签名;
特点:无条件跳转,不推荐在应用层使用
示例
int m = 1;
loop:
if (m <= 5) {
cout << "goto循环 - 当前值: " << m << endl;
m++;
goto loop;
}
4. 循环控制语句
break 语句
-
立即结束整个循环
-
用于提前退出循环
for (int i = 1; i <= 10; i++) {
if (i > 7) {
break; // 当i>7时退出循环
}
cout << i << " ";
}
// 输出: 1 2 3 4 5 6 7
continue 语句
-
结束本次循环,进入下一次循环
-
跳过循环体中剩余代码
for (int i = 1; i <= 5; i++) {
if (i % 2 == 0) {
continue; // 跳过偶数
}
cout << i << " ";
}
// 输出: 1 3 5
5. 循环嵌套
基本概念:外层循环运行一次,内层循环运行一遍
九九乘法表示例
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
cout << j << "×" << i << "=" << i * j << "\t";
}
cout << endl;
}
6. 循环结构选择指南
| 循环类型 | 适用场景 | 特点 |
|---|---|---|
| for | 循环次数确定 | 结构清晰,三要素集中 |
| while | 循环次数不确定 | 条件检测在前 |
| do-while | 至少执行一次 | 条件检测在后 |
| 范围for | 容器遍历 | 语法简洁(C++11) |
最佳实践建议
-
明确循环次数 → 使用 for 循环
-
循环次数不确定 → 使用 while 循环
-
需要先执行后判断 → 使用 do-while 循环
-
遍历容器元素 → 使用基于范围的 for 循环
-
避免使用 → goto 循环(特殊情况除外)
C++程序基础:流程控制详解
1464

被折叠的 条评论
为什么被折叠?



