码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 初阶C语言 - 分支语句(if、switch)


    目录

    1. 分支语句

    1.1 if语句

    1.1.1 if 语句的语法结构:

    1.1.2 悬空else 

    1.2 switch 语句(常用于多分支)

    1.2.1 switch 语句的语法结构: 

    1.2.2 switch 是如何工作的:

    1.2.4 default 


    1. 分支语句

    1.1 if语句

    1.1.1 if 语句的语法结构:

     

    • 多条语句要使用 { } 
    • 分支语句只会走其中一个语句
    • else if 的数量是不限的
    • 最后一个else是可以省略的

    1.1.2 悬空else 

    1. #include
    2. int main()
    3. {
    4. int a = 0;
    5. int b = 2;
    6. if(a == 1)
    7. if(b == 2)
    8. printf("hehe\n");
    9. else
    10. printf("haha\n");
    11. return 0;
    12. }

     

    else的匹配:else是和它离的最近的if匹配的

    if...else...合起来是一条语句

    所以不会输出hehe

    代码这样改才会输出hehe

    (放一条空语句在if语句后面,这样就是两个地位相等的if语句啦)

    1. #include
    2. int main()
    3. {
    4. int a = 0;
    5. int b = 2;
    6. if(a == 1) ;
    7. if(b == 2)
    8. printf("hehe\n");
    9. else
    10. printf("haha\n");
    11. return 0;
    12. }

     

    可见,这样的代码极易让人产生误会,

    浅谈选择结构if语句和switch语句的区别
    pdf 0星 超过10%的资源 49KB
    下载

    我们需要有好的代码风格:该对齐就要对齐,该带{ }就要带{ }。

    1. #include
    2. int main()
    3. {
    4. int a = 0;
    5. int b = 2;
    6. if(a == 1)
    7. {
    8. if(b == 2)
    9. {
    10. printf("hehe\n");
    11. }
    12. }
    13. else
    14. {
    15. printf("haha\n");
    16. }
    17. return 0;
    18. }

     

    1.2 switch 语句(常用于多分支)

    1.2.1 switch 语句的语法结构: 

      

    当然,整型常量表达式是字符常量表达式也是可以的,字符在内存中存的是ASCII码值,ASCII码值是整型。

    1. #include
    2. int main()
    3. {
    4. char day = 0;
    5. scanf("%c", &day);
    6. switch(day)
    7. {
    8. case 'a':
    9. case 'b':
    10. case 'c':
    11. printf("小写字母\n");
    12. break;
    13. case 'A':
    14. case 'B':
    15. case 'C':
    16. printf("大写字母\n");
    17. break;
    18. default:
    19. break;
    20. }
    21. return 0;
    22. }

     

    1.2.2 switch 是如何工作的:

    首先,switch根据switch后面表达式的值决定它匹配哪个case语句,就从哪个case语句进去

    进去之后,按顺序执行,直到遇到break,跳出switch语句。

    C++性能剖析教程之switch语句
    pdf 0星 超过10%的资源 80KB
    下载

    case决定入口,break决定出口。没有break,就会一直往下执行,直到遇到break;

    1. #include
    2. int main()
    3. {
    4. int day = 0;
    5. scanf("%d", &day);
    6. switch (day)
    7. {
    8. case 1:
    9. case 2:
    10. case 3:
    11. case 4:
    12. case 5:
    13. printf("weekday\n");
    14. break;
    15. case 6:
    16. case 7:
    17. printf("weekend\n");
    18. break;
    19. default:
    20. printf("选择错误\n");
    21. break;
    22. }
    23. return 0;
    24. }

    1.2.3 switch 语句可以嵌套使用

    • switch语句可以嵌套switch语句,也可以嵌套if语句
    • break只能跳出自己所在的switch语句
    1. #include
    2. int main()
    3. {
    4. int n = 1;
    5. int m = 2;
    6. switch (n)
    7. {
    8. case 1:
    9. m++;
    10. case 2:
    11. n++;
    12. case 3:
    13. switch (n)
    14. {//switch允许嵌套使用
    15. case 1:
    16. n++;
    17. case 2:
    18. m++;
    19. n++;
    20. break;
    21. }
    22. case 4:
    23. m++;
    24. break;
    25. default:
    26. break;
    27. }
    28. printf("m = %d, n = %d\n", m, n);
    29. return 0;
    30. }

    1.2.4 default 

    • 当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行
    • 每个switch语句中只能出现一条default子句
    • default可以出现在语句列表的任何位置,按顺序执行,直到遇到break 跳出switch语句。
    • default语句后注意有没有加break
    • default位置一般推荐最后

    综上,其实,default 和 case语句 的执行大差不差。都是入口,然后遇到break才会跳出switch语句,否则就一直往下执行。

     

  • 相关阅读:
    【C++】类型转换
    zk-Bench:SNARKs性能对比评估工具
    如何实现自动化测试?
    一级造价工程师(安装)- 计量笔记 - 第五章第二节通风空调工程
    在html中使用js实现图片的无缝滚动(四种状态)
    关于漏洞:检测到目标SSL证书已过期【原理扫描】
    【VisDrone数据集】VFNet训练VisDrone数据集步骤与结果
    gRPC协议详解
    域名限制注册有哪些原因?
    ITIL® 4 Foundation​,即将开课~想了解点击查看
  • 原文地址:https://blog.csdn.net/m0_61731585/article/details/125955565
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号