绪论
在学习编程的时候,我们都知道,程序的执行是从主函数开始,函数内的语句自上而下顺序执行,流程图如下:
这是最基本的流程结构,在没有特定语法结构的情况下,按照代码的先后顺序依次执行。
除此之外,在程序执行过程中,为了达到程序设计的目的,也衍生出了不同的流程控制语句,这里主要梳理了一下日常设计中使用较为广泛的分支结构、以及循环结构。
一、分支结构
分支结构是
1、if语句
语句基本格式:
if(关系表达式){
语句体;
}
执行流程:首先就算关系表达式的值,值为true则执行语句体,值为false则不执行语句体,继续向下执行if语句之后的程序代码。
2、if-else语句
语句基本格式:
if(关系表达式){
语句体1;
}
else{
语句体2;
}
执行流程:与if语句差不多,只是当关系表达式值为false是执行的是else里边的语句体2。
3、if-else if-else语句
基本语句格式:
if(关系表达式1){
语句体1
}
else if(关系表达式2){
语句体2
}
...
else{ 语句体n+1 }
执行流程:跟if-else类似,只是在中间根据程序目的需要多加了几个if分支,依次判断关系表达式1到n,若有值为true则执行该处语句体n,若都为false则执行语句体n+1。
4、switch语句
语句基本格式:
switch (表达式) {
case 1 : 语句体1;break;
case 2 : 语句体2;break;
...
default :语句体n+1;break;
}
执行流程:
① 首先计算出表达式的值 。
② 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇 到break就会结束。
③ 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,switch语句 结束。
注意点:case穿透
当控制语句后面缺少break时,将会在不判断下一个case值的情况下,向下运行,直到遇到break,或者整体switch语句结束。
上图代码在输入值为3、4、5时,都会执行case 5后边的输出语句。
二、循环结构
1、for循环(先判断,再执行)
语句基本格式:
for (初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
说明:
① 初始化语句:设定循环起始状态
② 条件判断语句:判断循环是否继续执行
③ 循环体语句:循环反复在做的事情
④ 条件控制语句:表示循环中的变化内容
执行流程:
①初始化->②判断->③执行循环体->④执行条件控制->回到②进行下一次循环判断...
无限循环格式:for(;;){ 语句体; }
注意点:初始化定义在循环结束后失效,定义的变量等在循环外使用时需重新定义。
2、while循环(先判断,再执行)
基本语句格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
自上而下,先进行初始化,之后进行条件判断,结果为true则进入循环,执行循环体和条件控制语句,判断为false则不进入循环;执行完一次循环体之后进入下一次循环的条件判断...
无限循环格式:while(true){ 语句体; }
注意点:与for循环不同,初始化定义在循环外,循环结束之后定义的变量仍可使用。
3、do...while循环(先执行,后判断)
语句基本格式:
初始化语句;
do {
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
① 初始化循环条件
② 执行循环体语句
③ 执行条件控制语句
④ 最后执行条件判断语句
无限循环格式:do { 语句体; } while(true);
注意点:与while循环一样,初始化定义在循环外,循环结束之后定义的变量仍可使用;
且由于是先执行再判断,所以do...while循环的循环体部分至少会执行一次。
4、循环嵌套
在学习的过程中,通常会出现一个循环语句里边还有其他循环语句的情况出现,这就是循环嵌套,通常情况下,外循环执行一次,内循环就会执行一圈。当然,可以在循环中嵌套分支语句,来达到我们想要的输出结果。
5、循环跳转控制
在循环语句中,很多时候,我们并不需要执行每一次的循环操作,这时候就需要一些跳转控制来执行跳出循环,或者跳过当次循环等操作。
(1)break关键字
break是用于跳出当前循环的关键字,主要作用是在循环执行过程中提前结束当前循环。
如图所示,猜数字游戏中在执行到猜对的时候就会通过break关键字跳出while循环。
(2)continue关键字
continue关键字的作用是在循环中跳过当次循环,继续执行下一次循环。
如图所示,在输出1-10之间的奇数时,可以通过continue关键字过滤掉偶数,跳过当前循环,执行下一次循环,使得仅在奇数时执行输出语句。
注意点:continue关键字只能在循环体内使用。