C语言笔记初级篇第二章:分支与循环

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言笔记初级篇第二章:分支与循环相关的知识,希望对你有一定的参考价值。

目录

(1)什么是语句

(2)分支语句

A:if语句

B:switch语句

(3)循环语句

A:while

B:for循环

C:do while循环

(4)goto语句

A:goto语句说明

B:goto 语句适合的场景


(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语言笔记初级篇第二章:分支与循环的主要内容,如果未能解决你的问题,请参考以下文章

C语言初阶笔记分支和循环语句

C语言笔记初级篇第三章:函数与递归

C语言笔记初级篇第三章:函数与递归

C语言笔记进阶篇第二章:字符串函数和内存函数

C语言笔记进阶篇第二章:字符串函数和内存函数

C语言基础学习笔记+ C语言进阶学习笔记总结篇(坚持才有收获!)