第一节:
流程控制的分类
流程控制的定义
:
流程控制就是代码执行的顺序,在代码的执行过程中,我们可能出现各种情况,对应不同情况,我们的代码会执行不同的分支结构,这个时候就是采用流程控制语句来控制代码的执行顺序。
流程控制简单的分为以下三类:
顺序结构
就是按照顺序依次往下执行,这里不做任何赘述。
选择结构
是出现分支选择的执行结构,例如,这个周末是取爬山还是去学习,就会出现分支
循环结构
是当我们要解决多个执行逻辑代码的时候,如果一行一行的重复输入这些代码,将会极大的降低我们的工作效率,因此出现了循环结构,会重复的执行一些需要执行的逻辑代码
第二节:选择结构
(1)分类
C语言中的选择结构有
if语句
和
switch语句
,两种选择结构语句。
(2)if三种语句使用
# include<stdio.h>
int main(void)
int i = 1;
if(i == 1){
printf("今天去爬山");
if(i == 2){
printf("今天去学习");
return 0;
if...else...语句
# include<stdio.h>
int main(void)
int i = 1;
if(i == 1){
printf("今天去爬山");
}else{
printf("今天去学习");
return 0;
if...else if...else if...else语句
# include<stdio.h>
int main(void)
int i = 1;
if(i == 1){
printf("今天去爬山");
}else if(i == 2){
printf("今天去学习");
}else if(i == 3){
printf("今天去玩游戏");
}else{
printf("今天睡觉,哪里都不去");
return 0;
注意:if语句在做条件判断的时候,如果是常量判断,通常把常量放在左边,变量放在右边以避免错误,例如:if(0 == a)避免写成if(0 = a),而且写成这样也不会报错
(3)switch语句
switch语句这里简单的举一个电梯的例子。
电梯的例子
# include<stdio.h>
int main(void)
int floor;
printf("请输入要上的电梯层数:\n");
scanf("%d",&floor);
switch(floor){
case 1:
printf("1楼到了...\n");
break;
case 2:
printf("2楼到了...\n");
break;
default:
printf("该楼层正在建设中...\n");
break;
switch语句和if语句的区别:
if语句能够实现的switch语句不一定能够实现,例如:if(a>100)
if语句有时候是能够互换的
switch语句可以完成的功能,if语句都可以完成
switch语句的case里面的break如果省略了,则不会跳出switch语句,而是继续往下执行,直到没有符合条件的才会跳出。
例如:我们可以用来判断月份是那个季节,就可以使用省略break的贯穿方式来灵活的编写代码。
第三节:循环结构
// 例如1:多个变量初始化和步长递增
for(int i = 0,int j=0; i<10; i++,j++ ){
printf("i = %d , j = %d", i , j);
// 例如2:求1+1/2+1/3...1/100的和
float sum = 0;
for(int i = 0;i < 101; i++){
sum += 1.0/i;
for循环的执行过程:
执行初始化语句
执行判断语句
- 如果判断结果为true,则进入循环。
- 执行完业务代码
- 执行步长语句
- 执行判断语句(返回到上面的第二步)
- 如果判断结果为false,则结束循环
多个for循环嵌套:
// 输出九九乘法表
# include<stdio.h>
int main(void)
for(int i = 1; i <= 9; i++){
for(int j = 1; j<= i; j++){
printf("%d * %d = %d ",j , i , j*i);
printf("\n");
return 0;
for循环注意事项:
- for循环的死循环:for( ; ; );
- for循环注意其执行流程
(3)while循环
// while循环基本格式
初始化语句;
while(判断语句){
业务语句;
步长语句;
// 例如:计算1+2+3+...+n的值
int sum = 0;
int i = 1;
while( i <101 ){
sum += i;
i++;
while循环执行过程
- 执行初始化语句执行判断语句
- 如果判断语句结果为true,则进入循环
- 执行业务语句
- 执行步长语句
- 执行判断语句(返回上述第二步)
- 如果判断语句结果为false,则跳出循环
while循环的注意事项
- while循环的死循环:while(1)
- for循环和while是完全等价的,但是for循环逻辑更强,推荐使用for
(4)do...while循环
// 基本格式
初始化语句;
业务逻辑代码;
步长代码;
}while(判断语句);
- do...while语句至少执行一次***
- do...while语句和while,for语句不等价
第四节:break和continue的用法
(1)break用法
- break可以用于for循环,while循环,do...while循环和switch语句。用于终止当前循环或者跳出switch语句
- break可以用于if语句,但是该if语句必须包含在循环语句中或者switch语句中,前者作为循环内部的一个子句。当符合if条件的时候终止循环语句,后者作为switch语句中的case情况,当满足if条件的时候,提前跳出switch语句(自己可以测试)
- break语句在多层循环中,只能跳出离break最近的循环体
- break只可以用于以上使用情况,break的作用就是强制跳出循环结构,终止本次循环或者跳出switch语句
(2)continue用法
- continue用于循环结构,例如:for,while,do...while语句
- continue用于结束本次单次循环(continue后面的语句不再执行,跳出本次循环),强制程序进入下一轮循环