计算机程序基础教程(09):C语言 - 程序执行流程控制语句

哔哩哔哩   2023-03-07 20:59:28

【条件判断语句】

● if语句

if语句根据一个布尔值确定是否执行一段代码。


(资料图片仅供参考)

若布尔值为1,执行if内代码,不执行else内代码。

若布尔值为0,不执行if内代码,执行else内代码。

若不需要else语句,也可以不定义。

● 嵌套if

if语句可以嵌套使用,if代码段和else代码段内都可以嵌套另一个if语句。

对于上述嵌套使用方式,可以使用如下简写形式,代码更简洁。

● switch case语句

switch case 语句的功能与嵌套 if else 类似,但是有些特定判断使用 switch case 语句更简单,并且编译器会对 switch case 语句进行一些优化,执行速度更快。

● 条件运算式

条件运算式类似 if else 语句,但是条件运算式只是通过布尔值条件返回一个数值,不能做其它事,定义方式如下:

条件 ? 数据1 : 数据2;

条件是一个布尔值,若为1,则返回数据1,否则返回数据2。

【循环语句】

循环语句用来循环执行一段代码,循环条件是一个布尔值,若为1则循环执行,若为0则退出循环,循环条件一般是一个运算式,返回一个布尔值,每次循环都会修改参与运算的变量,直到运算式返回0终止。

● while循环

● for循环

for循环是while循环的另一种使用方式,for将循环条件的定义、判断、修改都放在()符号内,方便查看和修改。

有些古老的编译器不支持上述用法,需要使用如下形式:

● do while循环

do while 循环首先执行一遍循环代码,然后判断布尔值,若为1则再次循环,否则退出循环。

while循环语句执行顺序如下:

进入 while =》 判断循环条件 =》 满足条件 =》 不执行跳转、顺序执行循环代码 =》 跳转到 while 起始地址

进入 while =》 判断循环条件 =》 不满足条件 =》 执行跳转、跳过 while

do while循环语句执行顺序如下:

进入 do while =》 执行循环代码 =》 判断循环条件 =》 满足条件 =》 执行跳转、跳转到 do while 起始地址

进入 do while =》 执行循环代码 =》 判断循环条件 =》 不满足条件 =》 不执行跳转、顺序执行之后的代码

每次循环时,while都会比do while多一个跳转指令,为了降低转移预测失败几率,编译器会将while和for转换为do while,转换方式同上C代码。

【跳转语句】

● break

break有两个作用:

1.终止循环语句,对于嵌套使用的循环,只终止break所在的那层循环。

2.跳过switch case语句。

● continue

continue用于终止循环语句的本次循环,执行下一次循环,一般与if语句配合使用,在满足一定条件时放弃本次循环。

● goto

goto用于无条件跳转到一段代码处执行,可以与if语句配合使用,实现有条件跳转。

【函数递归与循环】

函数可以直接或间接调用自己,从而实现递归执行,函数递归与循环语句都是将一段代码循环执行,区别在于循环语句是在函数内部循环执行,而函数递归是跳转到函数起始地址处执行,此处为设置函数栈空间相关指令,所以每次递归都会消耗一些栈空间,递归次数过多会导致栈顶超界,并且递归执行效率也不高。