• C语言入门(五)分支结构


    C语言的分支结构有两种:①if-else语句②switch语句

    if-else语句

    一般形式如下:

    if(表达式)

      语句1;

    else

      语句2;


    如果有多个语句,则写成

    if(表达式)

    {

      语句1;

      语句2;

    }

    else

    {

      语句3;

      语句4;

    }


    if-else的意思是,如果if后面表达式的逻辑值为1,则执行if里的语句,如果不为1执行else里的语句。 看下面一段代码

    1. #include
    2. int main()
    3. {
    4. int a, b;
    5. a = 5, b = 6;
    6. if (a > b)
    7. b++;
    8. else
    9. a++;
    10. printf("a=%d,b=%d", a, b);
    11. return 0;
    12. }

    🎈说明:

    上面的程序我给a,b两个变量赋初始值,进入if里判断a是否大于b,很明显a小于b,表达式的逻辑值为0,所以去执行else里的语句。


    if语句的嵌套

    看下面一段代码

    1. #include
    2. int main()
    3. {
    4. int a, b;
    5. a = 5, b = 6;
    6. if(a
    7. if (a > b)
    8. b++;
    9. else
    10. a++;
    11. printf("a=%d,b=%d", a, b);
    12. return 0;
    13. }

    很明显,上面程序中有两个if,一个else,但记住这个else永远之和离他最近的if配对

    那么上面程序的意思就是先执行判断if(ab),发现对于上面程序不满足那就执行else。

    如果你问,如果第一个if我就不满足呢?那就不执行,因为没有写和第一个if配对的else。


    多分支if语句

    看下面一段代码

    1. #include
    2. int main()
    3. {
    4. int a, b;
    5. a = 5, b = 6;
    6. if (a < b)
    7. b = b + 3;
    8. else if (a > b)
    9. b++;
    10. else
    11. a++;
    12. printf("a=%d,b=%d", a, b);
    13. return 0;
    14. }

    执行流程:

    先判断a是否小于b(a

    如果()内逻辑值不为1则往下执行判断a是否大于b。如果逻辑值为1则执行b++;

    如果都不满足就执行else里的a++;


    switch语句

    格式

    switch(表达式)

    {

      case 常量表达式1:语句1;break;

      case 常量表达式2:语句2;break;

      ......

      case 常量表达式n:语句n;break;

      default:语句n+1;break;

    }

    ✔执行流程

    表达式的值=常量表达式1的值,执行语句1,然后break跳出switch语句

    表达式的值=常量表达式2的值,执行语句2,然后break跳出switch语句

    表达式的值=常量表达式n的值,执行语句n,然后break跳出switch语句

    其他情况,执行语句n+1,然后break跳出switch语句

    Q:如果不写break会怎样?

    A:比如你1里面没写break,那么如果执行了语句1之后他会继续执行语句2,直到见到break,如果一直没碰到break那么他会执行完下面的所有语句。

    Q:不写default可以吗?

    A:当然可以,不写的话,当程序执行完switch后面的表达式,找不到对应的case语句时,他自动退出switch,执行下面的程序

  • 相关阅读:
    cubeIDE开发, stm32调试信息串口通信输出显示
    Ubuntu搭建dhcpv6服务器(Kea DHCP Server V2.3.7)
    arthas调查内存溢出 kibana宕机导致内存溢出
    【Quarto】Markdown导出PPT
    java游戏制作-拼图游戏
    关于SELECT...FOR UPDATE到底锁表还是锁行
    0054__【Linux】 sed命令详解
    集合深度学习02—List
    亚马逊鲲鹏系统功能7大特点介绍
    zabbix监控中间件服务
  • 原文地址:https://blog.csdn.net/Prefectkn/article/details/126484731