求知 文章 文库 Lib 视频 Code iProcess 课程 认证 咨询 工具 火云堂 讲座吧   建模者  
会员   
要资料
 
追随技术信仰

随时听讲座
每天看新闻
 


C语言教程
C语言历史
C语言特点
C语言VS开发环境安装
C语言第一个程序
C语言程序执行流程
C语言printf()和scanf()函数
C语言变量
C语言数据类型
C语言关键字
C语言运算符
C语言注释
C语言转义序列
C语言常量
C语言控制语句
C语言if-else语句
C语言switch语句
C语言循环
C语言do-while循环
C语言while循环
C语言for循环
C语言break语句
C语言continue语句
C语言goto语句
C语言类型转换
C语言函数
C语言函数
C语言通过值和引用函数
C语言递归
C语言存储分类
C语言数组
C语言数组
C语言二维数组
C语言将数组传递给函数
C语言指针
C语言指针
C语言指针的指针
C语言指针算术运算
C语言字符串
C语言字符串
C语言gets()和puts()函数
C语言字符串函数
C语言strlen()函数
C语言strcpy()函数
C语言strcat()函数
C语言strcmp()函数
C语言strrev()函数
C语言strlwr()函数
C语言strupr()函数
 
 

C语言switch语句
86 次浏览
 
 捐助

C语言中的switch语句用于从多个条件执行代码。 就像if else-if语句一样。

C语言中switch语句的语法如下:

switch(expression){
case value1:
//code to be executed;
break; //optional
case value2:
//code to be executed;
break; //optional
......
default:
code to be executed if all cases are not matched;
}

 

C语言中switch语句的规则如下 -

switch表达式必须是整数或字符类型。case值必须是整数或字符常量。case值只能在switch语句中使用。switch case中的break语句不是必须的。这是一个可选项。 如果在switch case中没有使用break语句,则匹配case值后将执行所有后的语句。它被称为通过C语言switch语句的状态。

我们试着通过例子来理解它。假设有以下变量及赋值。

int x,y,z;
char a,b;
float f;

 

有效的Switch 无效的Switch 有效的Case 无效的Case
switch(x) switch(f) case 3; case 2.5;
switch(x>y) switch(x+2.5) case ‘a’; case x;
switch(a+b-2) case 1+2; case x+2;
switch(func(x,y)) case ‘x’>’y’;
case 1,2,3;

 

C语言中的switch语句的流程图 -

我们来看一个简单的C语言switch语句示例。创建一个源文件:switch-statment.c,其代码如下 -

#include<stdio.h>
#include<conio.h>
void main() {
int number = 0;
printf("Enter a number:");
scanf("%d", &number);
switch (number) {
case 10:
printf("number is equals to 10\n");
break;
case 50:
printf("number is equal to 50\n");
break;
case 100:
printf("number is equal to 100\n");
break;
default:
printf("number is not equal to 10, 50 or 100\n");
}
}

 

执行上面示例代码,得到以下结果 -

Enter a number:88
number is not equal to 10, 50 or 100

 

执行第二次,结果如下 -

Enter a number:50
number is equal to 50
请按任意键继续. . .

switch语句直通到尾

在C语言中,switch语句是通过的,这意味着如果在switch case中不使用break语句,则匹配某个case之后的所有的case都将被执行。

我们来试试通过下面的例子来了解switch语句的状态。创建一个源文件:switch-fall-through.c,其代码如下所示 -

#include<stdio.h>
#include<conio.h>
void main() {
int number = 0;
printf("enter a number:");
scanf("%d", &number);
switch (number) {
case 10:
printf("number is equals to 10\n");
case 50:
printf("number is equal to 50\n");
case 100:
printf("number is equal to 100\n");
default:
printf("number is not equal to 10, 50 or 100\n");
}
}

 

执行上面示例代码,得到以下结果 -

enter a number:10
number is equals to 10
number is equal to 50
number is equal to 100
number is not equal to 10, 50 or 100
请按任意键继续. . .

从上面的输出结果中,可以清楚地看到,当匹配 number = 10 之后,由于没有break语句,其它后面的语句也打印执行了。

 

 


您可以捐助,支持我们的公益事业。

1元 10元 50元





认证码: 验证码,看不清楚?请点击刷新验证码 必填



86 次浏览
 捐助
 

每天2个文档/视频
扫描微信二维码订阅
订阅技术月刊
获得每月300个技术资源
 
 

关于我们 | 联系我们 | 京ICP备10020922号 京公海网安备110108001071号