C语言学习笔记 Day6(C4程序运行结构)

Day6 内容梳理:

目录

Chapter 4  程序运行结构

4.0 概述

4.1 条件判断语句

(1)if语句

(2)switch语句

⭐(3)if和switch的比较

4.2 循环语句

(1)while语句

(2)for语句

4.3 跳转语句

(1)break语句

(2)continue语句

(3)goto语句

⭐(4)break、continnue、goto的三者区别:


Chapter 4  程序运行结构

4.0 概述

基本的3种程序运行结构:

    ①顺序结构:程序按顺序执行,不发生跳转

    ②选择结构:按是否满足条件,执行相对应的代码

    ③循环结构:按是否满足条件,循环多次执行对应的代码

4.1 条件判断语句

流程:开始→判断条件→条件为真→执行语句→结束

                                    →若条件为假→结束

(1)if语句

        常用形式:if,if-else,if-else if-else      (PS:else{}部分均可省略)

ea1b292a73bc47428bc9a54f4153021d.png

❗注意:if相关的语句只会执行满足条件的第一个条件分支。(与没写break的switch语句不同)

以下图为例,输入的98满足所有区间的条件,但是只会输出第一个满足的分支,并结束条件语句。

02e60c24fb664eefb6525218f2ffcce3.png

补充:条件嵌套

        条件语句中,只有if相关的语句可以嵌套,switch无法嵌套。

        if中嵌套if,例子如下:

d60ba9852c1e4845b8b66f09021d67d1.png

(2)switch语句

格式:

switch(表达式得到一个值){

    case 值1:

        表达式1;

        break;

    case 值2:

        表达式2;

        break;

    中间省略……

    default:

        表达式 n;
        break;
}

❗每一个case写完都得加break,否则会连续往下执行case,而非执行完一个就退出。

没加break的反面例子:

b93d3291538245b6acb2afe1f32a56db.png

⭐(3)if和switch的比较

if语句switch语句
条件判断的范围区间(大于/小于/等于/不等于)单值
条件语句能否嵌套能,if里面还能再套if不能
效率

(因为需要从上往下逐个条件判断是否成立)

(因为可通过case的值直接索引到具体分支)

总而言之,如果是区间或多条件,建议选if语句;如果是单值且数量少,建议选switch语句。
 

❗补充知识点:三目运算符

格式:表达式a ? 表达式b : 表达式c

含义:表达式a若为真,则返回表达式b的值作为结果;a为假则返回c作为结果。

例子:

b50d774428924921894fada53e2090b2.png

优点:可简化一些基础的条件判断语句,但不适合嵌套、多值选择。

4.2 循环语句

        多次执行同一块代码,直至条件不满足。如果条件始终满足,则进入了死循环。

(1)while语句

while语句do while语句
代码格式

while(条件判断){

        表达式;

}

do{

        表达式;

}while(条件判断);

区别

先进行条件判断,

成立则执行代码,不成立则跳出while循环

先执行代码,

执行完再进行条件判断

(2)for语句

格式:

        for(定义初始值; 条件判断; 范围约束){

                表达式;

        }

例子:

        第一个写法较常用,第二个写法只是把for中的定义初始值、范围约束放到了其他位置上。

dc8b9e744c3946c68124b65f2c92f02d.png

❗注意:

①for中多变量、多条件的写法:

        注意区分逗号,和分号;

        逗号用于区分不同变量的取值。分号则加在for的定义初始值、条件判断、范围约束之间。

        例子:

2d04ce2415324eb087ef5f3785c7471d.png

②for中嵌套循环的写法:

        以九九乘法表的代码为例:

e48a4f967ff14365bef846b74b3c2a90.png

d1355b5793724a1ca197ffda83b16008.png

4.3 跳转语句

(1)break语句

当break出现在switch条件语句中,作用是终止某个case并跳出switch循环;

当break出现在循环语句中,作用是跳出当前的这一层循环结构,并执行后续代码。(仅跳出这一层。如果存在循环嵌套,则不影响其他层的循环语句)

(2)continue语句

如果满足条件,则跳过continue后面的代码,直接进入下一次循环。

(我个人感觉和if-else没区别,把continue之后的代码当成else里面的代码即可,毕竟if-else是一个条件分支满足的话,就不会再进入其他分支了)

(3)goto语句

是无条件跳转。可能会因为goto能来回跳转,导致修改一个模块时大概率会影响goto链接的另一模块,破坏代码结构、影响可阅读性,因此最好少用。

步骤是:先定义一个标志位(代码:goto FLAG; ),再跳转到标志位(代码:FLAG)。前者是分号,后者是冒号

常规例子:

❗ 非常规使用:

可用goto语句跳转到return之后,相当于程序有了多个出口,而非遇到return就结束。

⭐(4)break、continnue、goto的三者区别:

将循环比作一条流水线加工的话:

        break就是不干手头的活了;

        continue是跳过不合条件的零件,加工合要求的;

        goto是定义一类特殊零件,直接跳转到该类零件开始加工(可能会直接窜到其他生产线)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值