在 C 语言编程中,控制流是程序的核心骨架,决定了代码的执行顺序与逻辑分支。本文将系统讲解 C 语言中的分支、循环、跳转语句,帮你彻底掌握程序控制的核心技巧。
一、二路分支:if 与 if-else
逻辑:程序中某段代码需要在满足某个条件时才能运行。
两种形式:
- if 语句:表达「如果 - 则」的条件执行关系
- if-else 语句:表达「如果 - 否则」的互斥分支关系
核心注意点
- if 语句可以单独使用,else 必须与 if 配套使用
- 代码块必须用
{}括起来,否则只有首句有效
代码示例
// 判断偶数 if(a % 2 == 0) { printf("a 是偶数\n"); }二、多路分支:switch-case
逻辑:根据不同的条件执行不同的代码片段。
要点解析
switch(n)中的 n 必须是整型或字符表达式- case 只能带整型常量,不包括 const 型数据
- break 用于跳出整个 switch,没有会穿透执行
- default 不是必须的,一般放在最后
代码示例
switch(n) { case 1: printf("one\n"); break; case 2: printf("two\n"); break; case 3: printf("three\n"); break; default: printf("其他数字\n"); }三、const 关键字:定义不可修改变量
逻辑:使一个变量不可被修改、不可被修饰。
代码示例
int const a = 100; // 定义不可修改变量 const int b = 200; a = 101; // 错误!无法修改 b = 202; // 错误!无法修改四、循环结构:while、do-while、for
逻辑:让一段代码重复执行,提高代码效率。
1. while 循环:先判断,再循环
- 入口判断,循环体可能一次都不执行
int a; scanf("%d", &a); while(a <= 100) { printf("%d\n", a); a++; }2. do-while 循环:先循环,再判断
- 出口判断,循环体至少执行一次
- while 后面必须加分号
int a; scanf("%d", &a); do { printf("%d\n", a); a++; } while(a <= 100);3. for 循环:最紧凑的循环
将初始化、条件、更新集中在一行,结构最清晰。
语法:for(表达式1; 表达式2; 表达式3)
- 表达式 1:初始化循环变量
- 表达式 2:循环条件
- 表达式 3:更新循环变量
- 三个表达式可省略,但分号不能省
int a; for(a=30; a<=100; a++) { printf("%d\n", a); }五、break 与 continue:控制循环流程
break
- 跳出 switch 语句
- 跳出当前一层循环
continue
- 结束当次循环,直接进入下一次循环
代码示例
// 跳过所有能被7整除的数 for(int i=1; i<=100; i++) { if(i%7 == 0) continue; printf("%d\n", i); }六、goto 语句:无条件跳转
逻辑:无条件跳转到本代码块中的标签位置。
- 不利于可读性,一般不建议使用
- 常用于错误处理场景
代码示例
int main() { printf("%d\n", __LINE__); goto label; // 直接跳转 printf("这行不会执行"); label: printf("跳转成功\n"); return 0; }七、总结
C 语言控制流是编程基础中的核心:
- 分支:
if/else、switch-case处理条件判断 - 循环:
while/do-while/for处理重复逻辑 - 跳转:
break/continue/goto灵活控制流程
掌握这些语法,你就能写出逻辑清晰、结构完整的 C 语言程序。