C语言基础:switch语句
2018-03-12 10:45
239 查看
switch语句可以算是if else语句的一种特殊情况。当我们使用if else语句来做判断时,如果我们只想对条件表达式的结果做一些特定值的判断,那么就可以使用switch语句。例如:我们需要根据当前月份来判断这个月份应该有多少天,我们可以使用if else语句来处理这个问题,但同样也可以使用switch语句来处理。switch语句的使用方式如下:
switch (变量或表达式)
{
case 值1:
{
//处理内容
break;
}
case 值2:
{
//处理内容
break;
}
default
{
//处理内容
break;
}
}
switch右侧的小括号中的变量或表达的值的结果是一个确定的值。大括号中可以有多个case语句,case右侧的值如果等于switch右侧小括号中的值,那么程序将执行当前case大括号下的内容(case下的大括号可以省略,但建议保留),在大括号中的最后一行需要加入break语句,表示执行完当前条件分支的case之后程序跳出当前switch结构,如果没有break则程序会顺序执行下面的case语句代码,即使case后的值不等于switch的条件值。如果switch中所有的case值都不等于switch的条件值,那么程序将执行default后的大括号中的内容,default分支即为默认条件分支,也就是说当所有的case分支都没有起作用时程序将执行此默认分支,(default分支可以省略,但建议保留)。例如:int month = 11;
int day;
switch (month)
{
case 0: //一月
{
day = 31;
break;
}
case 1: //二月
{
day = 28;
break;
}
case 2: //三月
{
day = 31;
break;
}
case 3: //四月
{
day = 30;
break;
}
//5月到11月略
case 11: //十二月
{
day = 31;
break;
}
default: //其它情况
{
day = 0;
break;
}
}
上面程序执行的过程为:switch (month)中的条件表达式的值为11,也就是十二月(月分从0开始),程序会将这个值与所有的case条件值做比较。第一个case的条件值为0,11与0相比较的结果为假,则程序跳过此case分支;第二个case的条件值为1,11与0想比较结果为假,则程序跳过此case分支;依次比较,当case 11: { } 这个条件值为11,11与11相比较的结果为真,于是程序进入此case分支,执行day = 0;语句。注意,当执行完这个语句之后,程序需要通过break跳出当前switch结构,如果不使用break语句,程序在执行完day = 31之后,就会继续向下执行下一个分支,即使其条件不符合。也就是说,如果不用break跳出,程序在执行完day = 31后,还会继续向下执行day = 0;于是程序的运行结果就出现了错误。 通过上面例子我们可以看到swtich与if else语法的书写方式不同,但功能很类似,只不过switch中的case值是固定的常量,而if 后的条件值可以是一个变量或条件表达式,所以说if else结构在使用范围上比switch更广,但switch结构的语法更清晰,它适用于一些特定的情况,在一些固定值的条件判断中使用switch更加方便美观一些。
欢迎关注公众号:编程外星人
switch (变量或表达式)
{
case 值1:
{
//处理内容
break;
}
case 值2:
{
//处理内容
break;
}
default
{
//处理内容
break;
}
}
switch右侧的小括号中的变量或表达的值的结果是一个确定的值。大括号中可以有多个case语句,case右侧的值如果等于switch右侧小括号中的值,那么程序将执行当前case大括号下的内容(case下的大括号可以省略,但建议保留),在大括号中的最后一行需要加入break语句,表示执行完当前条件分支的case之后程序跳出当前switch结构,如果没有break则程序会顺序执行下面的case语句代码,即使case后的值不等于switch的条件值。如果switch中所有的case值都不等于switch的条件值,那么程序将执行default后的大括号中的内容,default分支即为默认条件分支,也就是说当所有的case分支都没有起作用时程序将执行此默认分支,(default分支可以省略,但建议保留)。例如:int month = 11;
int day;
switch (month)
{
case 0: //一月
{
day = 31;
break;
}
case 1: //二月
{
day = 28;
break;
}
case 2: //三月
{
day = 31;
break;
}
case 3: //四月
{
day = 30;
break;
}
//5月到11月略
case 11: //十二月
{
day = 31;
break;
}
default: //其它情况
{
day = 0;
break;
}
}
上面程序执行的过程为:switch (month)中的条件表达式的值为11,也就是十二月(月分从0开始),程序会将这个值与所有的case条件值做比较。第一个case的条件值为0,11与0相比较的结果为假,则程序跳过此case分支;第二个case的条件值为1,11与0想比较结果为假,则程序跳过此case分支;依次比较,当case 11: { } 这个条件值为11,11与11相比较的结果为真,于是程序进入此case分支,执行day = 0;语句。注意,当执行完这个语句之后,程序需要通过break跳出当前switch结构,如果不使用break语句,程序在执行完day = 31之后,就会继续向下执行下一个分支,即使其条件不符合。也就是说,如果不用break跳出,程序在执行完day = 31后,还会继续向下执行day = 0;于是程序的运行结果就出现了错误。 通过上面例子我们可以看到swtich与if else语法的书写方式不同,但功能很类似,只不过switch中的case值是固定的常量,而if 后的条件值可以是一个变量或条件表达式,所以说if else结构在使用范围上比switch更广,但switch结构的语法更清晰,它适用于一些特定的情况,在一些固定值的条件判断中使用switch更加方便美观一些。
欢迎关注公众号:编程外星人
相关文章推荐
- Java基础(极客)——02、Java语言Switch语句详解
- Java基础第一阶段——03_Java语言基础_运算符&if&while&switch&for语句
- C语言基础 之 switch-case语句
- 奶爸业余单片机学习之:C语言基础——switch多分支选择语句
- GO语言基础-switch语句特性
- C语言基础---BOOL 类型,运算符,if 语句,switch语句
- C语言基础编程(switch语句)
- java语言基础-switch语句的简单使用
- Linux-C基础知识学习:C语言作业-用switch语句实现——成绩分等级,90+:优 80~89良上,70~79良,60~69及格,<60不及格
- ios入门攻略 05篇 C语言基础【分支结构之switch语句】
- 黑马程序员---C语言基础---Switch语句
- 【C语言基础】有趣的猜数字游戏。(while循环,if语句,switch语句)
- Java语言基础(五) : 选择结构之 switch 语句
- 基础—switch语句例
- Java总结第一次//有些图片未显示,文章包含基础java语言及各种语句
- c语言基础:关于switch的用法
- 20161215C语言基础13_分支语句
- Java语法基础之选择结构的if语句、switch语句详解
- c语言基础-分支语句和循环语句
- 黑马程序员—Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)