从今天开始,进入了我们C语言学习的主线部分。

C语言中的分支语句分为两种,分别是if语句和switch语句

1、什么是语句?

C语句分为以下五类

1、1表达式语句

即表达式+语句。例如2+3, a+b为表达式   在它们后面加上语句的标志  ;(英文的分号)就成了语句

1、2函数调用语句

调用函数时使用的语句

1、3控制语句

官方说法:用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、分支结构、循环结构)。

(1)顺序结构:最简单的结构,按部就班的一步步执行。

(2)选择结构:  程序执行到某个位置时会进行选择,进而进入不同的分支,然后再执行后续程序。

(3)循环结构: 程序进行到某个位置时会根据一定条件进行判断是否循环执行这一部分程序。

上述三种结构由特定的语句定义符组成,C语言有9中控制语句。可以分为以下三类

(1)条件判断语句:if 语句  switch语句

(2)循环执行语句:do while语句  while语句  for语句

(3)转向语句:break语句  goto语句 continue语句  return语句

即不按照程序应有的顺序执行,跳转到其它位置,之后会慢慢介绍。

1、4复合语句

复合  迭代  复杂死你=-=

1、5空语句()

一个分号,没有其它内容。

2、分支语句(选择结构)

2、1if语句

语法上有单分支、双分支、三分支

下面我们用一个人是否成年作为示例:()内为判断条件

上图为单分支结构,输入age>=18时会打印成年,但是输入18以下的值时程序啥也不会做

上图为双分支结构,输入15或任意<18的值时会显示未成年

但是仅仅区分是否成年并不能满足我们的需求,我们可以使用多分支对于人的年龄段进行更加详细的划分。

上图的else if语句即多分支语句的一个语法  可翻译为或者如果/或者当...时。值得注意的是&&符号表示并且,即左右两个条件必须同时满足 ,此时我们任意输入一个age的值,

 就会从if(age<=3)开始挨个向下判断,如果满足条件就进入并执行相应的打印功能(并跳出),如果不满足就接着向下,直到有一个满足,此时会进入该条语句执行,然后会跳出if语句,不执行后续的else if和else

总结一下就是按步执行,不满足则向下,满足则进入执行,并跳过后续。

上述是if语句的基本语法形式,下面介绍一下if语句的几种不好的书写习惯及其造成的后果

现在大家思考一下,这个代码运行的结果是什么??

如果你的答案是haha,恭喜你,回答错了

代码运行后的结果为空,即不打印任何东西。这里的else看似与if(a==1)对齐,实际是与if(b==2)相对应  从而产生了歧义和错误。这是因为我们没有使用代码块 即{} 将其分隔

加入代码块后就很清晰了。不加代码块时,if以及else if 和else只能作用于它们下面的一条语句,加入代码块后,可以作用于整个代码块{}内部。

注意,我们写代码时要养成良好的代码习惯,比如if  else语句最好加上代码块,if与else的对齐情况,从而增加自己代码的  可读性 ,避免歧义和错误

加入合适得到代码块后,我们可以使打印的结果为haha。

综上:else的匹配遵循就近原则,但是有代码块时代码块优先

2、2switch语句

if-else语句已经能够解决所有的分支问题了,但是if --else if--else if--........--else在描述多分支问题时显得有些麻烦,因此出现了switch语句,常用于多分支的情况。

下面我们用星期的打印来讲解switch语句的语法

2、2、1语法形式

这里我们输入2,对应的就是case2,打印出今天是 星期2。当输入的数不在1-7范围内,会进入default中,然后打印输入错误。

这里注意一下case的形式  打完case之后加一个空格,然后在打数字  最后打一个英文冒号 :

2、2、3break的用法

在switch语句中,每一个case都是程序的入口,每一个break都是程序的出口(直接跳出这个switch语句)。

如上图所示,当我们输入2时,程序从case 2:进入,并且往下执行,因为没有break,所以会一直执行到switch语句结束,为了得到星期2,我们就要在case 2:中加上break语句让它及时中断 跳出

注意:switch()括号中必须是整型的语句,例如day是整型类型,不能是例如float、double ,同时case后的值是整型常量表达式    指0 1 2等数值常量。

同时补充一点,case后的break在某些逻辑下是可以不加的

例如,我们将星期1-5作为工作日,6-7作为休息日

输入3时,程序从case 3进入,只打印一个工作日,相比把每个case都加上打印工作日和break,这种方法大大减少了代码量,可以提高运行的效率,但前提是写代码时的逻辑要满足                   (几个不同的输入,但它们输出的内容相同)

感谢大家坚持看到现在,学会了分支语句,你就能在人生的道路上做出正确的选择^.^

码字不易,希望大家能够多多的支持^.^^

分支语句你真的学明白了吗??相关推荐

  1. 分支语句和循环语句<小罗爱学c语言>

    C语言是一门结构化的程序设计语言 顺序结构 选择结构 循环结构 什么叫语句? 由一个分号组成的 : 分支语句 这里可以说打出了呵呵,因为括号中是一个赋值语句,这个是一定的 如果出现一个常量和一个变量的 ...

  2. 重学JavaSE 第4章 : 顺序结构、分支语句、循环结构、break, continue, return区别

    文章目录 一. 程序流程控概述 二. 顺序结构 三.分支语句 2.1.分支语句1:if-else结构 2.1.1.输入语句 2.2. 分支语句2:switch-case结构 四.循环结构 4.1.fo ...

  3. 【C语言】分支语句和循环语句还能这么用?一篇带你重新认识它(两万字超细详解)

    文章目录 前言 分支语句(选择结构) 一. if 语句 1. if 语法结构代码演示 2. 当一个 if 或者 else 或 else if 后面跟多个语句要加大阔号 { } 3. else的匹配:e ...

  4. c语言入门----详解分支语句(switch语句)

    目录标题 前言 一.为什么会有switch语句 二.switch语句的基本形式 三.switch语句中的break 1.为什么会有break语句 2.break语句的使用 四.switch语句中的de ...

  5. JavaScript基础06-day08【if练习、条件分支语句switch、for循环】

    学习地址: 谷粒学院--尚硅谷 哔哩哔哩网站--尚硅谷最新版JavaScript基础全套教程完整版(140集实战教学,JS从入门到精通) JavaScript基础.高级学习笔记汇总表[尚硅谷最新版Ja ...

  6. android 结束if循环_(第五讲)if 分支语句和 while 循环

    本文首发于微信公众号「烽哥带你学Android」,工作日每日更新 1x0 switch 分支语句 昨天我们最后学习了分支结构中的 if 条件语句.其实和 if 条件语句还有个兄弟 -- switch ...

  7. 盘复分支语句和循环语句的那些知识

    目录 1.分支语句 一.if语句 if语句的语法结构 多分支 悬空else 二.switch switch的语法结构 小结: 2.3种循环语句 1.while() 小结 2.for循环 for循环中的 ...

  8. C++ Primer Plus(嵌入式公开课)---第5,6章 循环和关系表达式 分支语句和逻辑运算符

    20220222 C++ Primer Plus - 第五.六章 附录: 1.ASCII码字符对照表 2.C++ 运算符优先级 第1-3章 第4章 复合类型 第5章 循环和关系表达式 5.1 for循 ...

  9. JS中的分支语句和循环语句

    1.JS中的IF语句 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

最新文章

  1. docker网络配置方法总结
  2. HDU-1698 JUST A HOOK 线段树
  3. 动态加入JS及加入CSS
  4. 利用Xshell实现非对称秘钥对安全登陆linux服务器(Centos、Ubuntu)
  5. pytorch dropout_PyTorch初探MNIST数据集
  6. 超图(hypergraph)
  7. JavaScript 代码片段
  8. PC端品优购电商项目源码
  9. Excel 数组公式的简单使用
  10. PMP之相关方登记册、相关方参与计划与沟通管理计划的区别
  11. 官方|TensorFlow微信公众号发布
  12. 设计师Adobe国际认证证书有用吗?
  13. 人工智能AI程序设计语言
  14. 南昌航空大学计算机专业好吗,南昌航空大学王牌专业是什么
  15. 手机端兼容iPhoneX刘海屏
  16. QT: 基于QT和嵌入式的视频监控系统
  17. The method xxx of type xxx must override a superclass method
  18. 大数据精准营销有哪些特性呢?
  19. 将酷狗缓存文件转化成MP3格式
  20. 关于“幽灵架构”的总结:适用场景与方法重载

热门文章

  1. Linux-Mysql 日志
  2. 手机支付用户增长迅速,达到5.27亿!交易的安全行不容忽视
  3. 关于c语言操作cjson数据相关示例
  4. 计算机网络名怎么删,网上邻居里怎么删除多余的计算机名?
  5. 我想我知道np.newaxis是什么意思了
  6. (JAVA)JPanel面板使用
  7. CPU的结构和功能——指令流水及中断系统
  8. c语言光显示算法,[转载]C语言常见算法
  9. ArcEngine + DevPress GIS二次开发:湖北疫情交互式数据分析、地图输出、专题可视化系统 具体实现
  10. 华云数据“上药控股混合云平台”荣获“2021年度混合云优秀案例”