C语言:条件判断语句(if、switch)

        C语言有9种控制语句,可分为三类:

1.条件判断语句(分支语句):if语句、switch语句

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

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

        C语言是一种结构化的语言,可分为顺序结构、循环结构和选择结构。

其中,if语句和switch语句可以实现选择结构,while语句、for语句、do while语句可以实现循环语句。

        具体可参考下面这篇文章:

C语言:语句——基建所需的砖石与钢筋-CSDN博客

这里介绍第一大类:

if语句和switch语句

目录

一、if语句

(一)if语句的表达式

(二)if……else

1.语法结构

2.使用例子:

(三)默认情况:if和else只控制1条语句

(四)嵌套if

1.嵌套if使用格式

(五)规则:else总是和最近的if匹配

二、switch语句

(一)表达格式

1.expression必须是整形表达式

2.case后的值,必须是整型常量表达式

三、if语句与switch语句的比较

(一)if语句:

(二)使用switch:

1.case和后边的数字之间需要有空格

2.每一个case中的代码执行完后,需要加上break才能跳出switch语句

四、switch语句中的break语句

五、switch语句中的default

(一)case位置与default位置


一、if语句

(一)if语句的表达式

表达式成立(为真),则语句执行;表达式不成立(为假),则语句不执行。

C语言中,0表示是假,非0表示真,即表达式的结果是0,则语句不执行;表达式结果如果不是0,则语句执行。

举例:输入一个整数,判断是否为奇数。

接下来我们思考了:如果输入的这个数,不是奇数,而是偶数呢?也就是说,如果任意输入一个整数,我们要怎么判断这个数是奇数还是偶数呢?

这里就需要if……else语句了。

(二)if……else

1.语法结构

2.使用例子:

输入一个整数,判断是否是奇数,是则打印奇数,不是则打印偶数。

if……else语句是一种可以用来实现选择结构的语句,是非此即彼的关系。就像人生的道路分岔口一样,一旦选择了这个方向,就只能一直走下去。

话是这么说,但凡事无绝对。只要有足够的本钱,从头再来,重新选择都不是问题。在C语言上,则表现为能够实现转向的语句,如goto语句,break语句,continue语句,return语句。这里后面会讲到。

(三)默认情况:if和else只控制1条语句

那如果,if要同时控制2条语句呢?

那就是用大括号{}将语句括起来,后面的else所控制的语句需要的话,也可以被{}括起来。

(四)嵌套if

在if……else语句中,else可以与另一个if连用,构成多重判断。

举例:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数。

再比如:输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数。

1.嵌套if使用格式

(1).

(2).

(五)规则:else总是和最近的if匹配

举例:

运行的结果是什么呢?

其实什么都没有。

为什么?

因为else总是与最近的if相匹配,也就是else是与第二个if匹配的。但是由于第一个if条件不成立,所以接下来的if else语句执没机会执行,最终什么也不打印。如果想要else跟第一个if,那就用大括号{}括起来:

二、switch语句

相较于if else 语句,switch 语句更加简单形象,用于判断多重结果的情况。

(一)表达格式

根据expression的不同值,执行相应的case分支。如果找不到,就执行default分支。

注意:

1.expression必须是整形表达式

2.case后的值,必须是整型常量表达式

三、if语句与switch语句的比较

练习:输⼊任意⼀个整数值,计算除3之后的余数

(一)if语句:

(二)使用switch:

在使用switch语句时,需要注意:

1.case和后边的数字之间需要有空格

2.每一个case中的代码执行完后,需要加上break才能跳出switch语句

四、switch语句中的break语句

还是以为例子:

如果case后面没有break语句,执行结果除了打印“余数是1”外,还会打印“余数是2”。

原因是,switch语句也具有分支效果,去掉case后面的break后,代码会继续往下执行,可能会执行其他case的代码,直到遇到break语句或者switch语句结束。

因此,break对于switch语句来说,能帮助后者实现分支效果。

但是,并不是每一个case都需要break。

比如这种情况:输入一个1~7的数字,其中1~5打印“工作日”,6-7打印“休息日”。

一句话总结:实事求是地使用break。

五、switch语句中的default

在使用switch 语句的时候,如果switch 后的表达式中的值无法匹配代码中的 case 语句,这时候要不就不做处理,要不就在 switch 语句中使用default 语句。

以上面的代码为例,如果用户输入的是8,无法与上面的任何一个case匹配,便会执行default语句。

(一)case位置与default位置

没有顺序要求。只是通常情况下放在尾巴。

  • 14
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值