这篇具有很好参考价值的文章主要介绍了【C语言记】分支语句和循环语句。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。
1.什么是语句?
C
语句可分为以下五类:
- 表达式语句:3+5;
- 函数调用语句:printf("hehe\n");
- 复合语句
- 空语句: ;(需要一条语句,但这条语句什么都不做。)
- 控制语句
控制语句
用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,
C
语言有九种控制语句。
可分成以下三类:
(1) 条件判断语句也叫分支语句:
if
语句、
switch
语句;
(2)
循环执行语句:
do while
语句、
while
语句、
for
语句;
(3)
转向语句:
break
语句、
goto
语句、
continue
语句、
return
语句。
下面让我们来讲解其中的几个语句。
2.分支语句
(1)if语句
单分支:如果年龄小于18岁,则打印未成年。
双分支:如果年龄小于18岁,打印未成年,否则打印成年。
多分支:如果年龄小于18,打印少年;如果年龄大于等于18,小于30,打印青年;如果年龄大于等于30,小于50,打印中年,如果年龄大于等于50,小于80,打印老年,如果年龄大于等于80,打印老寿星。
注意:if语句只能控制一条语句
if语句后加{ }才能使两条语句都被if语句控制
下面我们看一组代码
它的结果是什么呐?是不是很多人都认为它的结果是haha。
但它其实并没有输出结果,这是为什么?
由此可见,书写形式的重要性,不好的书写形式容易引起误解,甚至错误。
对比:
-
代码2和代码4更好,逻辑更加清晰,不容易出错。
-
练习
判断一个数是否为奇数
(2)switch语句
switch
语句也是一种分支语句。
常常用于多分支的情况。
比如:
输入
1
,输出星期一
输入
2
,输出星期二
输入
3
,输出星期三
输入
4
,输出星期四
输入
5
,输出星期五
输入
6
,输出星期六
输入
7
,输出星期日
那我们写成
if...else if ...else if
的形式就太过复杂,我们就得有不一样的语法形式。
这就是
switch
语句。
如果想要输入3,输出星期三后就结束,则引入break。在switch语句中,我们没办法直接实现分支,搭配break使用才能实现真正的分支。
如果我们想要输入1-5,输出的是“weekday”; 输入6-7,输出“weekend”
所以我们的代码就应该这样实现了:
break
语句
的实际效果是把语句列表划分为不同的分支部分。
注意:
在最后一个
case
语句的后面加上一条
break
语句。
(之所以这么写是可以避免出现在以前的最后一个
case
语句后面忘了添加
break
语句)。
default子句
思考:如果表达的值与所有的
case
标签的值都不匹配怎么办?
其实也没什么,结构就是所有的语句都被跳过而已。 程序并不会终止,也不会报错,因为这种情况在C
中并不认为是个错误。 但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条
default
子句,把下面的标签 default: 写在任何一个 case
标签可以出现的位置。
当
switch
表达式的值并不匹配所有
case
标签的值时,这个
default
子句后面的语句就会执行。
所以,每个
switch
语句中只能出现一条
default
子句。
但是它可以出现在语句列表的任何位置,而且语句流会像执行一个
case
标签一样执行
default
子句。
练习
下列代码的输出结果是什么?
switch(n)中n决定从哪个case进去
3.循环语句
(1)while循环
当条件满足的情况下,
if
语句后的语句执行,否则不执行。但是这个语句只会执行一次。
由于我们发现生活中很多的实际的例子是:同一件事情我们需要完成很多次。
那我们怎么做呢?
C
语言中给我们引入了:
while
语句,可以实现循环。
在屏幕上打印
1-10
的数字。
i在等于1到4时均不等于5,因此不断循环;在i等于5时,遇到break,循环结束。
可见,break
在
while
循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环。
所以:while中的break是用于永久终止循环的。
可见,实例1中i被赋值1到4时,均不等于5,不断循环,在等于5时,遇见continue,则跳过了continue后面的代码,因此5不会被打印出来,但会不断循环,光标也在不断闪烁。
实例2中在i等于5时,遇到continue,跳过了后面的代码,因此5不会被打印出来,但i还是会不断加一,直到i=10时,i+1=11,终止循环。
因此,continue
在
while
循环中的作用就是:
continue是用于终止本次循环的,也就是本次循环中continue后边的代码不会再执行,
而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。
输出1-100之间的奇数
(2)for循环
表达式
1
表达式
1
为
初始化部分
,用于初始化循环变量的。
表达式
2
表达式
2
为
条件判断部分
,用于判断循环时候终止。
表达式
3
表达式
3
为
调整部分
,用于循环条件的调整。
使用
for
循环 在屏幕上打印
1-10
的数字
break在for循环中也是直接终止循环,只要遇到break,循环就直接结束。
在for循环中,如果遇到continue,会跳过continue后面的代码,直接去循环的调整部分。
和while循环中的continue有区别。
建议:
1.
不可在
for
循环体内修改循环变量,防止
for
循环失去控制。
2.
建议
for
语句的循环控制变量的取值采用
“
前闭后开区间
”
写法。
代码1
for
循环中的初始化部分,判断部分,调整部分是可以省略的,但是不建议初学时省略,容易导致问题。
代码2
代码3
代码4:使用多余一个变量控制循环
练习
由此可见,k=0是赋值,不是判断,赋值为0,即为假,不循环。
(3)do ...while()循环
语法结构
代码演示
do...while()语句中的break和continue
注意:do...while()中break和continue和在while循环中一模一样,break都是用于终止循环,continue是跳过本次循环后边的代码,直接去判断部分。
4.转向语句
goto语句
C
语言中提供了可以随意滥用的
goto
语句和标记跳转的标号。 从理论上 goto
语句是没有必要的,实践中没有
goto
语句也可以很容易的写出代码。 但是某些场合下goto
语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过程。
例如:一次跳出两层或多层循环。多层循环这种情况使用break
是达不到目的的。它只能从最内层循环退出到上一层的循环。
语法结构
一个关机程序文章来源:https://www.toymoban.com/news/detail-734306.html
文章来源地址https://www.toymoban.com/news/detail-734306.html
而如果不适用
goto
语句,则可以使用循环:
拓展资源:自动关机_百度百科
以上就是我为大家讲解的所有语句,希望对大家有所帮助。如果其中有错误,也希望大家能够进行指正和建议,谢谢大家!
到了这里,关于【C语言记】分支语句和循环语句的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!