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