C语言笔记初级篇第二章:分支与循环
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言笔记初级篇第二章:分支与循环相关的知识,希望对你有一定的参考价值。
目录
(1)什么是语句
C语言是一门结构化程序设计语言:顺序结构,选择结构,循环结构
C语言中“;”隔开的就是一条语句
(2)分支语句
A:if语句
第一点:if语句的基本结构
第一:单分支
第二:双分支
第三:多分支
第二点:关于if语句的其他补充
第一:悬空if
else在匹配if时,匹配的是离它最近的if,所以下面的代码中,在阅读上感觉要输出“haha”,但是实际什么都不输出,因为下面的else是和内层的if匹配,它连第一个判断都没有进去
所以代码风格一定要清晰,不能人为的产生歧义
第二:请再不要把赋值运算符和比较运算符搞混了
所以为了防止这样的低级错误,可以反着写
B:switch语句
第一点:switch语句的基本结构
第二点:关于switch的一些说明
第一:switch后面是整形,case后面必须是整形或整形表达式
第二:case后面不是任何时候都加break语句。比如下列情形:要求输入1,2,3,4,5,中任意一个数字,则输出工作日,6和7则输出休息日。
第三点:关于default的说明
第一:default和case的顺序无关,但建议放在后面
第二:计算需求中没有用default的地方,良好的代码风格也应该加上它
如下图这段代码,很好的体现了switch的执行过程
接下来,逐过程运行代码
(3)循环语句
A:while
第一点:while循环基本结构
第二点:while循环逻辑图
第三点:关于break和continue
break是用来跳出当前循环
continue就是跳过某个循环变量,直接进行判断
第四点:经典例子while
第一:利用while读走缓冲区字符,使getchar接收到键盘上所输入的字符
(注意,上述操作结束时要按"ctrl +z")
上面的实例究竟有什么用呢:如下要输入一个输入密码的程序,问题在于程序为什么不再getchar处等我们输入Y或N后再进行判断,而是直接跳过了这一步骤
那么解决方法很显而易见,只要在getchar读输入缓冲区前,把里面的换行符读走即可
当然上述的解决方法还是有限制的,只用于某些特殊情况。所以完美的解决方式就是用本实例所要说明的while循环
第二:只接受数字打印,非数字不打印
B:for循环
第一点:for循环的基本结构
第二点:for循环逻辑图
表达式1只会被执行1次
第三点:break和continue在for循环中的使用
break和continue使用基本一致
第四点:关于for循环的注意事项
第一:不要在for循环体内改变循环变量
第二:建议for循环控制变量的取值采用“前闭后开”写法
第三:for循环的初始化,调整,判断都可以省略,其中判断省略后条件恒为真(虽然各部分可以省略,但每一个部分都有存在的意义,所以随意省略可能导致意想不到的错误)
比如,下面省略了for循环的初始化
第四:for循环允许多个循环变量
C:do while循环
第一点:do while循环的基本结构
第二点:do while循环的逻辑结构
第三点:do while中的break和continue
do while中continue仍然会导致死循环
(4)goto语句
A:goto语句说明
C语言中提供了可以随意滥用的goto语句额标记跳转的符号,从理论上来说goto语句是没有必要的,但是在某些特定场合下也会使用到goto语句,最常见的就是处理某些深度嵌套的语句,使用goto语句可以一次跳出多个循环,而在这样的情况下使用break'是达不到,因为break只能跳出一层。
如下:可以使用go循环打印
由以上可以看出,使用goto语句可以使程序随意跳转,也就极易造成代码逻辑混乱
B:goto 语句适合的场景
特别适合这种深层次嵌套
以上是关于C语言笔记初级篇第二章:分支与循环的主要内容,如果未能解决你的问题,请参考以下文章