流程控制语句
if 语句,switch 语句,goto 语句,循环语句
[注]流程控制语句是为了实现程序控制而产生的
[if]语句
格式:
[最简单的if语句]
if(表达式) { //语句块 }
[逻辑] 当程序从上往下执行,执行到if 语句时,先判断表达式的值;如果表达式的值为“真”,执行语句块;否则,不执 行语句块
[升级版本1]
if(表达式) { //语句块1 } else { //语句块2 }
[逻辑] 当程序执行到if-else语句时,先判断表达式的值;如果表达式的值为“真”,执行语句块1;如果表达式的值 为“假”,执行语句块2
[升级版本2]
if(表达式1) { //语句块1 } else if(表达式2) { //语句块2 } //...... else { //语句块n }
[逻辑] 当程序执行到if语句时,首先判断表达式1的值;如果表达式1的值为“真”,执行对应的语句块1,跳到if语句后继 续执行其他代码;如果表达式1的值为“假”,继续判断表达式2的值,表达式3的值......直到某个表达式的值 为“真”,执行对应表达式的语句块,跳到if语句后继续执行其他代码
当前面所有表达式的值都为“假”时,才会执行最后else中的语句块
当前面所有表达式的值都为“假”,并且最后也补需要执行其他代码,这时可以省略else分支
[goto 语句]
[注] goto 语句在实际开发运用很少
goto 语句的格式有两种
格式1:
goto 标号;
......
标号:
格式2:
标号:
......
goto 标号;
[逻辑] 当程序执行到goto语句时,立即无条件跳转到对应的标号处,继续往下执行其他代码
[goto语句的特点]
<1>goto语句构成的代码,代码结构不是很清晰,不太容易看懂
<2>goto不能跨函数访问,多个函数之间使用goto语句跳转容易导致程序崩溃
[switch语句]
switch语句,也称为“开关语句”
格式:
switch(整型表达式) { case 标号1:语句块1;break; case 标号2:语句块2;break;
...... default:语句块n;break; }
[注] {}中的每个case和default都称为是switch得一个分支,case可以有多个,default最多有一个
[注] case,default 后的break 语句是根据需求添加的
[注] default分支可以放置在任何一个case分支前/后
[注] case 后的标号一般是常量表达式
[逻辑] 当程序执行到switch语句时,先计算整型表达式的值,根据整型表达式的值,和每个case后的标号值进行匹配,如果和某个标号的值匹配成功,执行对应 标号后的语句块
当整型表达式的值无法和任何一个标号值匹配时,默认执行default后的语句块
switch语句可以嵌套使用,同样if语句也可以嵌套使用
如果是switch语句嵌套使用,内层switch语句中的break只可以结束内层switch
[循环语句--while]
格式:
while(条件表达式) { //循环体 }
[逻辑] 当程序执行到while语句时,先判断条件表达式的值是“真”还是“假”
当表达式的值为“真”时,执行循环体,然后再去判断表达式的值
直到表达式的值为“假”时,退出循环
[注] 当第一次判断表达式的值时,表达式就为“假”,循环体一次也不会执行
[注] while语句中,可以配合break,continue语句来实现循环的控制
[break] 程序执行到break语句,while循环立即退出
[continue] 程序执行到continue语句,会结束当次循环,进入下次循环
[do-while循环]
[注] do-while循环中也可以使用break,continue语句,作用和在while循环中一样
格式:
do { //循环体 } while(条件表达式);
[逻辑] 当程序执行到do-while语句时,先执行一次循环体,然后再去判断表达式的值
如果表达式的值为“真”,执行循环体,然后再去判断表达式的值
如果表达式的值依然为“真”,执行循环体,然后再去判断表达式的值,直到表达式的值为“假”,循环退出
[注] 当第一次判断表达式的值就为“假”,循环体已经执行过一次
[注] do-while循环一般用在游戏开发中
[for 循环]
for循环的一般格式:
for(初始化表达式;判断表达式;自增/自减表达式) { //循环体 }
[逻辑] 当程序执行到for循环语句时,先执行表达式1,然后判断表达式2的值
当表达式2的值为“真”,执行循环体 ,然后执行表达式3,再去判断表达式2的值,直到表达式2的值为“假”,循环退出
[注] for循环语句中也可以使用break,continue语句