C语言switch语句的用法详解

C语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:switch(表达式){     case 常量表达式1:  语句1;    case 常量表达式2:  语句2;    …     case 常量表达式n:  语句n;    default:  语句n+1;}其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

#include

intmain(void){

inta;

printf("input integer number: ");

scanf("%d",&a);

switch(a){

case1:printf("Monday\n");

case2:printf("Tuesday\n");

case3:printf("Wednesday\n");

case4:printf("Thursday\n");

case5:printf("Friday\n");

case6:printf("Saturday\n");

case7:printf("Sunday\n");

default:printf("error\n");

}

return0;

}

本程序是要求输入一个数字,输出一个英文单词。但是当输入3之后,却执行了case3以及以后的所有语句,输出了Wednesday 及以后的所有单词。这当然是不希望的。为什么会出现这种情况呢?这恰恰反应了switch语句的一个特点。在switch语句中,“case 常量表达式”只相当于一个语句标号, 表达式的值和某标号相等则转向该标号执行,但不能在执行完该标号的语句后自动跳出整个switch 语句,所以出现了继续执行所有后面case语句的情况。 这是与前面介绍的if语句完全不同的,应特别注意。为了避免上述情况,C语言还提供了一种break语句,专用于跳出switch语句,break 语句只有关键字break,没有参数。在后面还将详细介绍。修改例题的程序,在每一case语句之后增加break 语句, 使每一次执行之后均可跳出switch语句,从而避免输出不应有的结果。【例4-10】

#include

intmain(void){

inta;

printf("input integer number: ");

scanf("%d",&a);

switch(a){

case1:printf("Monday\n");break;

case2:printf("Tuesday\n");break;

case3:printf("Wednesday\n");break;

case4:printf("Thursday\n");break;

case5:printf("Friday\n");break;

case6:printf("Saturday\n");break;

case7:printf("Sunday\n");break;

default:printf("error\n");

}

return0;

}

在使用switch语句时还应注意以下几点:

在case后的各常量表达式的值不能相同,否则会出现错误。

在case后,允许有多个语句,可以不用{}括起来。

各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

default子句可以省略不用。

(0)

相关推荐

  • Excel随机函数的用法详解

    EXCEL随机数指随机生成没有规律的数值,有随机小数和随机整数. RAND函数用于生成随机小数. RANDBETWEEN函数用于生成随机整数. 还可以生成时间随机数. 步骤 1.RANE函数可以生成0 ...

  • EXCEL表格中HEX2OCT函数的用法详解

    Excel是一个常用办公工具,它本身功能很是强大,自带了很多已经预定义的函数,可以随时根据需要进行调用.而HEX2OCT函数是将十六进制数值转换成八进制数值的函数,那如何在EXCEL表格中使用该函数呢 ...

  • dos命令之copy用法详解

    dos命令详解之copy用法详解 操作方法 01 假设,你需要把d:\test\test.txt这个文件复制到D盘根目录下,那么,使用 copy d:\test\test.txt d:\ 就可以轻易办 ...

  • 《英雄无敌3》圣杯的用法详解

    操作方法 01 英雄无敌3中圣杯是一个神器,在原版的游戏中,圣杯也只能使用一次,所以对玩家来说选择好使用的城市才是关键,下面是圣杯的使用方法详解,新手玩家可以参考一下. 圣杯的用法详解资料 把圣杯带到 ...

  • C语言 while语句的用法

    C语言中的while语句是比较常用的循环语法,比如我们要求1到100的数字之和,就会用到while语句.下面小编来给大家介绍一下C语言中while语句的用法. 操作方法 01 首先用Visual St ...

  • linux renice命令参数及用法详解(linux修改程序运行优先级命令)

    linux renice 命令详解 功能说明:调整程序优先级。 语法:renice [优先等级][-g <程序群组名称>...][-p <程序识别码>...][-u <用 ...

  • linux who命令参数及用法详解(linux查看在线用户命令)

    linux who 命令 详解 Linux最常用命令之一 功能说明:显示目前登入系统的用户信息。 语法:who [-Himqsw][--help][--version][am i][记录文件] 补充说 ...

  • linux kill命令参数及用法详解(linux终止进程命令)

    Linux kill 命令使用详解 功能说明:删除执行中的程序或工作。 语法:kill [-s <信息名称或编号>][程序] 或 kill [-l <信息编号>] 补充说明:k ...

  • 如何为Mac设置丢失模式 "查找我的Mac"用法详解

    很多人都知道,iPhone有"查找我的iPhone(Find My iPhone)"功能,一旦丢失,可以通过该功能对手机进行定位并锁定,运气好的话可以找回.其实这一功能并不是iPh ...