C语言分支语句

一、在C语言中,分支语句分为if语句和switch语句

1、if语句

语句形式:if(表达式){语句块}

这是什么意思呢?

首先在C语言中,0为真,非0为假,在if语句中,程序先进到if的表达式中判断,若判断表达式的值为真,则执行语句块中的内容,若表达式的值为假,则会跳过语句块(即不执行语句块中的内容)。在if语句中如果语句块没有加{},则默认执行第一条语句,为了语句看着可读性较高,我们在写if语句时尽量加上{}。

 

代码1
代码2

                     

上述代码1,if的表达式中的1,它是非0所以执行代码块中的内容,代码2中if的表达式中的值为0则不会执行语句块中的内容,直接执行下一条代码。 

在if语句中,if常常配合else关键字使用,语句形式:if(表达式){语句块1}else{语句块2},这里表达的意思是,程序走到if语句先判断if后面表达式的真假,如果为真,则执行语句块1,接着跳过语句块2(即不会执行语句块2),相反,如果if后面的表达式为假,则会直接跳到语句块2的位置执行语句块2的内容,语句块1的内容不会执行,语句块2如果不加{},默认执行第一条语句。应用场景:通常会用到事物只有两面性的时候,比如说,判断一个数是奇数还是偶数、判断硬币是正面还是反面等等。

if语句还有一种写法用于多组判断,语句形式:if(表达式1){语句块1}else if(表达式2){语句块2} .....else{语句块},这里表达的意思是如果表达式n成立则只会执行对应的语句块n,跳过其它判断。应用场景:用于比较事物的多面性,例如,比较a,b的大小,可能a > b可能a < b也可能a = b,这时候if...else就不能实现这种功能了。

以上两种写法,else只与离它最近的同一子块中的if匹配。这个请大家格外注意!


2、switch语句

语句形式:switch(整形表达式){ case value1:statement   case value2 :statement  ... default : statement }

switch语句是一种特殊的if...else...选择结构,用于判断条件有多个结果的情况。它把多重的else if改写成更易用,可读性更好的形式。

switch中case后面value必须是整形常量表达式,程序跑到switch时会根据整形表达式中的值,找到对应的case,执行相应的内容,如果没有找到对应的case会执行default中的内容,在switch语句中有一个关键字break,它的意思是跳出switch语句,如果有多个switch语句,则只跳出第一个switch语句。

  

我们接着看,如果不加break,在代码1中我们在控制台上输入1,程序跑到switch语句时,因为a此时为1,这直接找到case1执行case1中的内容,执行完后程序没有跳出来,接着执行csae2中的内容,执行case3中的内容,执行default中的内容,然后结束,所以控制台输入了1,2,3,输入错误等信息,如果加上break;当我们在控制台上输入1,程序跑到case1执行完case1中的内容后遇到break;直接跳出整个switch语句,所以最终只输出了1。这就是加不加break;的区别,当然break不是一定要加的,我们应该根据需求判断是否加break;灵活运用即可。

最后说一下case和default顺序问题,我们应该明白当程序跑到switch语句时根据整形表达式的值直接找到对应的case中,它不是从头开始找,所以我们再写switch语句时,case和default的顺序可以随便写,这里没有限制,但你要保证顺序打乱写后你的代码实现的功能是不变的,为了使代码的可读性较高,我们在写switch语句时尽量按顺序写。

以上就是我总结的C语言中的分支语句中的if语句和switch语句,希望可以帮助大家,其中若有不足的地方,欢迎大家私信我,我将带着这份初心,和大家一起进步!

  • 26
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值