知识梳理——程序执行过程中的流程控制结构

绪论

        在学习编程的时候,我们都知道,程序的执行是从主函数开始,函数内的语句自上而下顺序执行,流程图如下:

        这是最基本的流程结构,在没有特定语法结构的情况下,按照代码的先后顺序依次执行。

        除此之外,在程序执行过程中,为了达到程序设计的目的,也衍生出了不同的流程控制语句,这里主要梳理了一下日常设计中使用较为广泛的分支结构、以及循环结构。

一、分支结构

        分支结构是

        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关键字只能在循环体内使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值