switch case用法举例c语言
在C语言中,switchcase语句是一种多路转换语句,用于根据不同的条件选择不同的执行路径。它允许程序员将一个变量与多个值进行比较,并根据比较结果执行相应的代码块。下面是一些使用switchcase语句的示例,帮助您更好地理解其用法。
1.简单的switchcase语句
以下是一个简单的switchcase语句示例,用于根据学生的成绩等级输出不同的信息:
```c
#include<stdio.h>
intmain(){
intscore;
printf("请输入学生成绩:");
scanf("%d",&score);
switch(score){
case90:
case99:
printf("优秀\n");
break;
case80:
case89:
printf("良好\n");
break;
case70:
case79:
printf("中等\n");switch语句c语言例子
break;
default:
printf("不及格\n");
}
return0;
}
```
在这个例子中,我们首先从用户输入一个整数,表示学生的成绩。然后使用switchcase语句根据成绩等级输出不同的信息。注意,在每个case语句中,我们使用了逗号分隔多个数值,
这些数值可以匹配同一个case语句。当满足其中任何一个条件时,该case语句后的代码块将被执行。最后,我们使用default语句处理不符合任何case条件的情况。
2.switchcase语句与break关键字结合使用
在使用switchcase语句时,我们可以结合使用break关键字来跳出循环。例如,以下示例演示了如何使用switchcase语句和break关键字来计算一个数字的阶乘:
```c
#include<stdio.h>
intmain(){
intn;
printf("请输入一个正整数:");
scanf("%d",&n);
intfactorial=1;
switch(n){
case0:
factorial=1;//当n为0时,阶乘为1,不需要继续判断其他case条件
break;
case1://当n为1时,阶乘为1,不需要继续判断其他case条件
factorial=1;//可以省略break语句,直接输出结果即可
printf("%d的阶乘为%d\n",n,factorial);//输出结果为1的阶乘为1
return0;//可以直接返回结束程序,不需要再判断其他case条件了
default://其他情况需要继续判断case条件并执行相应的代码块
for(inti=2;i<=n;i++){//从2到n依次累乘得到阶乘值
factorial*=i;//累乘操作
switch(factorial){//根据阶乘值输出不同的信息并跳出循环
case1://当阶乘值为1时,跳出循环并输出结果即可,不需要继续判断其他case条件了
printf("%d的阶乘为%d\n",n,factorial);//输出结果为n的阶乘值n!=factorial=i*(i-1)*...*2*1=i!=factorial=n!=factorial=i!=factorial*(i-1)!=factorial*(factorial-1)*(factorial-2)*...*2*1=factorial!=factorial!=factorial*factorial!=factorial*factorial*factorial/factorial-1/factorial=n!*(n-1)!/(n-2)!/.../(2)/(1)=n!/n(n-1)/n/(n-1)!/(n-2)!/.../(2)/(n-i+1)=n!/i!=n/i*i/i-i+1/factorial*i!=n!-n+n*i-i!/factorial*(i-1)!=n*(i+i-factorial)-factorial!=n(i+i-factorial+1)-factorial*(i+i-factorial)/i+1://输出阶乘值和剩余位数,并将下标i的值保存到临时变量temp中(假设每个case中输出的信息数量相同)//如果此时要跳出循环,只需要将下标i的值传递给下一条