高职网站建设专业书,网站建设的工作方法,网站被拔毛的原因,加强廉政教育网站建设C程序流程结构详解
一、选择结构
选择结构根据条件判断决定程序执行路径。
1. if 语句
语法形式说明执行条件if (条件) {语句}单分支选择结构条件为真时执行if (条件) {...} else {...}双分支选择结构条件为真/假分别执行不同语句if (条件1) {...} else if (条件2) {...} e…C程序流程结构详解
一、选择结构
选择结构根据条件判断决定程序执行路径。
1. if 语句
语法形式说明执行条件if (条件) {语句}单分支选择结构条件为真时执行if (条件) {...} else {...}双分支选择结构条件为真/假分别执行不同语句if (条件1) {...} else if (条件2) {...} else {...}多分支选择结构按顺序检查条件执行第一个满足条件的语句块
示例代码
int score 85;
if (score 90) {cout 优秀 endl;
} else if (score 80) {cout 良好 endl; // 输出此项
} else if (score 60) {cout 及格 endl;
} else {cout 不及格 endl;
}
2. switch 语句
用于多分支选择适合离散值判断
组件说明switch (表达式)表达式必须是整型、枚举或字符类型case 常量:匹配表达式结果的入口点break;跳出switch结构防止贯穿default:所有case都不匹配时执行的代码块
示例代码
char grade B;
switch (grade) {case A: cout 90-100分 endl;break;case B: cout 80-89分 endl; // 输出此项break;case C: cout 70-79分 endl;break;default:cout 不及格 endl;
} 注意忘记break会导致贯穿现象程序会继续执行后续case的语句。 二、循环结构
循环结构用于重复执行代码块。
1. while 循环
先判断条件再执行循环体
语法特点while (条件) {循环体}循环次数不确定时使用 可能一次都不执行
示例代码
int count 0;
while (count 5) {cout count ; // 输出0 1 2 3 4count;
}
2. do-while 循环
先执行一次循环体再判断条件
语法特点do {循环体} while (条件);至少执行一次循环体 结尾必须有分号
示例代码
int num 10;
do {cout num ; // 输出10num;
} while (num 5); // 条件不满足但仍执行一次
3. for 循环
最常用的循环结构包含初始化、条件判断和更新
语法组成部分for (初始化; 条件; 更新) {循环体}初始化循环前执行一次 条件每次迭代前检查 更新每次迭代后执行
示例代码
for (int i 0; i 5; i) {cout i ; // 输出0 1 2 3 4
}// 嵌套循环示例打印九九乘法表
for (int i 1; i 9; i) {for (int j 1; j i; j) {cout j × i i*j \t;}cout endl;
}
4. 范围-based for 循环 (C11)
简化容器和数组的遍历
语法适用场景for (元素类型 变量 : 容器) {循环体}遍历数组、vector、list等容器 只读访问for (auto 变量 : 容器) {循环体}可修改容器元素 自动类型推导
示例代码
vectorint nums {1, 2, 3, 4, 5};// 只读遍历
for (int num : nums) {cout num ; // 输出1 2 3 4 5
}// 修改元素
for (auto num : nums) {num * 2; // 每个元素乘以2
}
三、跳转语句
跳转语句用于改变程序执行流程。
1. break 语句
作用适用场景终止当前循环while, do-while, for循环内部跳出switch语句防止case贯穿
示例代码
// 在循环中遇到特定条件退出
for (int i 0; i 10; i) {if (i 5) {break; // 当i5时跳出循环}cout i ; // 输出0 1 2 3 4
}
2. continue 语句
作用说明跳过本次循环剩余代码直接进入下一次循环迭代不影响循环控制变量更新for循环的更新部分仍会执行
示例代码
// 跳过奇数只输出偶数
for (int i 0; i 10; i) {if (i % 2 ! 0) {continue; // 跳过奇数}cout i ; // 输出0 2 4 6 8
}
3. goto 语句
语法注意事项goto 标签;无条件跳转到标签处标签:定义跳转目标慎用会使程序结构混乱难以维护
示例代码
int count 0;START: // 标签定义
cout count ;
count;if (count 5) {goto START; // 跳转到START标签
}
// 输出0 1 2 3 4
4. return 语句
作用说明从函数中退出可返回一个值非void函数结束程序执行main函数中的return结束整个程序
示例代码
int add(int a, int b) {return a b; // 返回结果并退出函数
}int main() {int result add(3, 4); // result 7return 0; // 结束程序
}
四、流程控制综合示例
#include iostream
#include vector
using namespace std;int main() {// 选择结构示例int age 25;if (age 18) {cout 成年人 endl;} else {cout 未成年人 endl;}// 循环结构示例vectorint numbers {10, 20, 30, 40, 50};int sum 0;// 使用范围for循环计算总和for (int num : numbers) {sum num;}cout 总和: sum endl; // 输出: 总和: 150// 跳转语句示例cout 查找第一个3的倍数: ;for (int i 1; i 10; i) {if (i % 3 0) {cout i endl; // 输出: 3break; // 找到后立即退出循环}}// continue示例: 跳过特定值cout 1-10中非3的倍数: ;for (int i 1; i 10; i) {if (i % 3 0) {continue; // 跳过3的倍数}cout i ; // 输出: 1 2 4 5 7 8 10}cout endl;return 0;
}
运行结果
成年人
总和: 150
查找第一个3的倍数: 3
1-10中非3的倍数: 1 2 4 5 7 8 10
五、最佳实践与注意事项 选择结构 简单条件用if-else多离散值用switchswitch语句必须有break防止贯穿避免深层嵌套超过3层考虑重构 循环结构 明确循环次数用for不确定用while循环变量作用域最小化C99后for循环变量作用域在循环内警惕死循环确保循环条件会变为false 跳转语句 优先使用break/continue替代gotobreak只能跳出一层循环嵌套循环需使用标志变量continue不适用于switch语句 性能考量 循环内避免重复计算将不变计算提到循环外减少循环内部的条件判断范围for循环比传统for循环更高效编译器优化 可读性建议 复杂条件表达式用括号明确优先级循环体超过10行考虑提取为函数避免在循环体内修改循环计数器for循环的更新部分除外 掌握这些流程控制结构能够构建逻辑清晰、高效可靠的C程序为后续学习面向对象和高级特性打下坚实基础。