上一章我们讲了C语言分支结构中的if...else,那么这一章我们来讲一下分支中的另外一种结构switch。

一般来说在C语言分支结构中if...else结构可以搞定几乎所有的判断语句,但有时候用if...else结构会比较繁琐,而用switch就会简洁方便很多。比如我们输入一个字符

(就输入a和b吧),然后相应的输出一个以该字符开头的动物名称。

那如果用if...else怎么写呢?

While scanf ch

If ch=='a'

Printf argali(盘羊)

continue;//跳过这次循环

If ch=='b'

Printf babirusa(鹿豚)

c语言switch使用方法(第十一章C语言分支之switch)(1)

那么if虽然也可以处理,但是其实在C语言中还有一种比较简洁的结构,switch来解决这个程序会更加具有可读性。

c语言switch使用方法(第十一章C语言分支之switch)(2)

通过这个列子,我们来看一下switch的结构:

switch(integer expression)--------→这里必须是int型常量或int型常量表达式

{

Case constant1:-------------------------->case标签不能是变量

Statements------------------→可选

break;-----------------------→可选

Case constant2:

Statements--------------------→可选

break;------------------------→可选

default:----------------------------→可选,default标签表示如果上面的标签都没有匹配那么执行这个标签的代码

Statements---------------------→可选

break;--------------------→可选

}

那么switch是怎么执行的呢:

c语言switch使用方法(第十一章C语言分支之switch)(3)

在switch中case标签中的break是可以不写的,那么不写会造成什么后果呢,如果没有break那么程序就会顺序执行下去,直到碰到break或者到switch结束。

c语言switch使用方法(第十一章C语言分支之switch)(4)

那么我们什么时候用if...else什么时候用switch呢,其实有时候并没有什么选择,因为switch的条件太严格必须是int型的常量或常量表达式。所以一般碰到不是int型的常量或者范围条件基本都要用if...else。

在结尾呢,在介绍一个跳转语句:goto。

goto平时基本不会用到,而且呢,最好也不要用。

直接用一个程序介绍一下吧:

c语言switch使用方法(第十一章C语言分支之switch)(5)

好了这一章结束,C语言中的分支也讲完了,不知道大家都学会了么?

我们在来做一题吧:

要求输入一周中的工作小时数,然后打印工资总额,税金以及净工资。作如下假设:

a、 基本工资等级=10.00美元/小时

b、 加班(超过40小时)=1.5倍的时间

c、 税率 前300美元为15%

下一个150美元为20%

余下的为25%

使用#define(预处理命令格式是"#define 常量的符号名 值"如#define WAGE 10)定义常量。

大家可以把程序写在评论里交流一下。

,