• 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,执行下面的程序

  • 相关阅读:
    【编程之路】面试必刷TOP101:二叉树系列(37-41,Python实现)
    SpringMVC基于注解使用:异常处理
    【React组件】github搜索案例之 兄弟组件通信---PubSubJS / fetch
    JavaScript链表---单向链表
    ES6 入门教程 28 异步遍历器 28.4 异步 Generator 函数 & 28.5 yield星号 语句
    Slurm作业管理系统常用命令和教程
    09. 机器学习- 逻辑回归
    工具篇 | 04 | STS
    Linux端口的开启
    Kotlin调用Java代码时引起空指针异常,要怎么避免?
  • 原文地址:https://blog.csdn.net/Prefectkn/article/details/126484731