分支和循环

什么是语句,在C语言中可以分为以下五类,

 表达式语句就是像3+5;这样的由分号结束的语句。

函数调用语句大家也是很常见,就像我们平常使用的打印函数printf。

复合语句是由大括号包起来的,有多条语句的句子。

空语句就是只有一个分号的语句。

控制语句用于控制程序的执行流程,以实现程序的各种结构方式,(顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。

可以分为以下三类:

1.条件判断语句,也叫分支语句:if语句、switch语句;

2.循环执行语句:do while语句、while语句、for语句;

3.转向语句:break语句、goto语句、continue语句、return语句。

if语句

 当if表达式成立时,执行语句1,当if表达式不成立时,执行语句2,

 当然我们也可以这样写,虽然这一段代码可以运行,但是我并不推荐这样写,因为这样写,程序会把每一个if语句都判断一遍,这样会让程序运行变慢。

 这里来看一个案例,你是否可以看出输出了什么,如果是输出“haha”那么恭喜你,错了,再来看一遍,else与哪一个if匹配,不要看着else和第一个if对齐了就是和第一个if匹配,这里着重强调,else是和最近的if匹配,这里程序运行下来之后,来到了第一个if语句判断,a==1,判断为假,则不执行下面的if语句,直接就完了,所以这里是什么都不输出。那么你看到这段代码有什么感想,是不是觉得写的很乱,这还不算什么,来看看这张。

 是不是更加头大了,所以这里再说一下,一定要养成良好的代码习惯,这也是为了你我他,免得出去上班了看见这种代码。

 这才是正确的写法!

 这里来考一个小知识,来看看代码一,代码二效果是否一样。

答案是:一致。

为什么一样呢?你是否有疑惑,你是不是觉得代码一,if成立了返回x后,y也会被返回,,不不不,这里告诉你,在C语言中,只能存在一个return,这下你是否明白,当然在其它的一些语言中支持有多个返回值。

switch语句

 switch语句,由switch后的整形表达式来与语句项来匹配,当整形表达式和其中一个语句项匹配成功,那么就执行这个语句项,所谓的语句项就是右边图上的case表达式。

 这里来一个实践,来由输入的数字判断星期几,但是你可能看见右边,当我输入1时,后面的语句都执行了,这是为什么呢?这里再和大家说一下,switch语句有一个穿透现象,当我们不在语句项的后面加上break时,就会出现这种情况,但是这并不是一个没用的现象哈,这种现象也是可以运用的,

比如我们需要通过输入的数字来判断是否是工作日,这里就可以使用switch的穿透现象。

当然,作为一个程序员,我们需要考虑所有的输入情况,万一用户输入的不是一个数字呢?这里介绍default,它可以让整形表达式不与任何一个case匹配时,执行default的语句。

这里来做一个练习好吧,请思考上图代码,回答输出的m、n的值。

答案是5、3

那么为什么是5、3呢?

从switch语句进入由n来与case匹配,n=1,执行case 1,m自加1,而且case 1没有加break,所以继续执行case 2;n自加1,继续执行case3,进入下一个switch语句,也是由n来与case匹配,n此时为2,执行case 2,m、n都自加1然后跳出当前switch语句,注意,只跳出当前的switch语句,不能跳出多个语句,然后继续执行case 4,m自加1,然后跳出,输出。

while语句

 当表达式成立时,执行循环语句。

这里来实践一下,我们来打印一到十。

 

 最后再来介绍一下continue,

看看上图,输出结果是什么, 是不是只输出1——4,这里来解释一下,当n==5时continue后的语句就不执行了所以只输出1——4.

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值