本文概述
- switch-case语句的功能
下面给出了用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语句规则
1)开关表达式必须是整数或字符类型。
2)大小写值必须是整数或字符常量。
3)case值只能在switch语句内部使用。
4)在switch情况下的break语句不是必须的。它是可选的。如果在案例中未找到break语句,则所有案例将在匹配的案例之后执行。它被称为通过C switch语句的状态。
让我们尝试通过示例来理解它。我们假设存在以下变量。
int x, y, z;
char a, b;
float f;
有效开关 | 无效的开关 | 有效案例 | 无效的情况 |
---|---|---|---|
switch(x) | 开关(f) | 情况3; | 案例2.5; |
switch(x> y) | 开关(x 2.5) | 情况’ a’ ; | 案例x; |
switch(a+b-2) | 情况1 2; | 案例x 2; | |
switch(func(x, y)) | 情况’ x’ > ’ y’ ; | 案例1, 2, 3; |
文章图片
switch-case语句的功能首先,对switch语句中指定的整数表达式求值。然后将该值与在不同情况下给出的常数一一匹配。如果找到匹配项,则将执行在该情况下指定的所有语句以及该情况之后的所有情况(包括默认语句)。没有两种情况可以具有相似的值。如果匹配的案例包含一个break语句,则将跳过此之后存在的所有案例,并且控件退出开关。否则,将执行匹配个案之后的所有个案。
让我们看一个简单的c语言switch语句示例。
#include<
stdio.h>
int main(){
int number=0;
printf("enter a number:");
scanf("%d", &
number);
switch(number){
case 10:
printf("number is equals to 10");
break;
case 50:
printf("number is equal to 50");
break;
case 100:
printf("number is equal to 100");
break;
default:
printf("number is not equal to 10, 50 or 100");
}
return 0;
}
输出量
enter a number:4
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
切换案例2
#include <
stdio.h>
int main()
{
int x = 10, y = 5;
switch(x>y &
&
x+y>0)
{
case 1:
printf("hi");
break;
case 0:
printf("bye");
break;
default:
printf(" Hello bye ");
} }
输出量
hi
C Switch语句失败在C语言中,switch语句无效;这意味着,如果在切换用例中不使用break语句,则匹配用例之后的所有用例都将执行。
让我们尝试通过以下示例了解switch语句的掉线状态。
#include<
stdio.h>
int main(){
int number=0;
printf("enter a number:");
scanf("%d", &
number);
switch(number){
case 10:
printf("number is equal 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");
}
return 0;
}
输出量
enter a number:10
number is equal to 10
number is equal to 50
number is equal to 100
number is not equal to 10, 50 or 100
enter a number:50
number is equal to 50
number is equal to 100
number is not equal to 10, 50 or 100
嵌套开关案例声明
我们可以在switch语句中使用任意数量的switch语句。这种类型的语句称为嵌套切换案例语句。考虑以下示例。
#include <
stdio.h>
int main () {int i = 10;
int j = 20;
switch(i) {case 10:
printf("the value of i evaluated in outer switch: %d\n", i);
case 20:
switch(j) {
case 20:
printf("The value of j evaluated in nested switch: %d\n", j);
}
}printf("Exact value of i is : %d\n", i );
printf("Exact value of j is : %d\n", j );
return 0;
}
【c switch语句】输出量
the value of i evaluated in outer switch: 10
The value of j evaluated in nested switch: 20
Exact value of i is : 10
Exact value of j is : 20