当我们需要对某个变量或表达式的取值进行比较时,可以使用C语言中的switch-case
语句来实现。switch
语句接受一个表达式作为条件,在匹配到对应值的case
语句时执行相应的代码,并且可以配合default
语句提供一个默认执行的选项。
switch
语句的基本语法如下:
switch (expression) {
case value1:
// code block
break;
case value2:
// code block
break;
...
default:
// code block
break;
}
其中,expression
是用于比较的表达式,value1
、value2
等是可能的值(或表达式)。代码块中的内容通常由多条语句组成,可以使用break
语句来结束这个case
并跳出整个switch
语句。
下面展示两个示例。
示例1
#include <stdio.h>
int main() {
int num = 2;
switch(num) {
case 1:
printf("num is 1\n");
break;
case 2:
printf("num is 2\n");
break;
case 3:
printf("num is 3\n");
break;
default:
printf("num is not 1, 2, or 3\n");
break;
}
return 0;
}
这段代码的输出结果是:
num is 2
这是因为num
的值为2,匹配到了case 2
语句,并且输出了"num is 2"
。
示例2
#include <stdio.h>
int main() {
char c = 'A';
switch(c) {
case 'A':
printf("c is A\n");
break;
case 'B':
printf("c is B\n");
break;
case 'C':
printf("c is C\n");
break;
default:
printf("c is not A, B, or C\n");
break;
}
return 0;
}
这段代码的输出结果是:
c is A
这是因为c
的值为'A'
,匹配到了case 'A'
语句,并且输出了"c is A"
。
需要注意的是,switch
语句只能用于判断整数类型或字符类型的值,而不能判断浮点数、字符串或其他数据类型的值。如果需要进行更复杂的比较,可以在case
语句中编写多个条件判断。如果不在case
语句中使用break
语句,则会由于穿透效应,同时执行匹配到的case
以及后面的所有case
。而default
语句并不是必须的,可以根据实际需要选择是否加入。