1 摘要
本文介绍C语言中流程控制相关的基础知识。
2 分类
顺序结构:默认的流程结构。按照书写顺序执行每一条语句。
选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。
循环结构:在给定条件成立的情况下,反复执行某一段代码。
3 if 分支
简单使用
- if (表达式) 语句1;
if(count>50) 开班; 上课; - if(表达式) 语句1; else 语句2;
f(count>50) 开班; else 不开班; - if(表达式) { }
if(count>50) {开班; 布置课室;} else {}
{ }的作用域 - if -else if-else
if(a==0) else if (a>0) else
特点:只有一个括号会被执行 - 复合条件
上课时间的取值范围(9~12 || 14 ~17) - 陷阱
if(a!=0) { a不是0;} else {a是0;}
if (a); { }
if (a=0)
a == 0;
if (10) int a = 9;
4 选择结构-switch
- switch(表达式) { case 数值1: break; … default: break;}
- 举例
int a = 10;
switch (a) {
case 0:
printf(“这是一个0”);
break;
case 5:
printf(“这是一个5”);
break;
case 10:
printf(“这是一个10”);
break;
default:
printf(“什么也不是”);
break;
} - if和switch的对比
很多情况可以互换
if用得比较多,比较灵活,switch只能某个单值
5 循环结构-while
- while(表达式) { }
continue:输出5次休息一下
break的使用:某次的时候停止循环 - 特点
只有条件成立才会执行循环体 - 陷阱
while(条件);
6 循环结构-do while
特点:一定会执行一次循环体
while和do while循环对比
int i=0;
while(i<0){
i++;
}
int i=0;
do{
i++;
} while(i<0);
7 循环结构-for
- 简单实用
运行过程
初始化语句等可以是多句(把printf放到for的括号中) - for循环嵌套
- 陷阱
死循环 for(;;); - for循环体内部变量的作用域
作用域混淆
for (int i = 0; i<5; i++) int a = 10; - while循环和for循环的比较
可以互换
for循环的变量可以及时回收 - break和continue
break
使用场合:switch\循环结构
循环嵌套下的break
continue
使用场合:循环结构
循环嵌套下的continue
8 注意点
switch (a)
{
/*
case 0:
int b = 20 + a;
break;
*/
// 如果在case中定义了新的变量,必须用大括号{}包住
case 0:
{
int b = 20 + a;
break;
}case 2: break;
}
return 0;
}
9 待补充
- 看一些关于流程控制的经典例题。