switch语句或简单的case语句是一种控制流机制,它根据一个变量或表达式的值来决定程序的执行。
使用switch语句允许你测试多个条件,并且只在条件为真时执行特定的程序块。虽然它的工作原理与if...else语句相似,但其语法更简单,更容易阅读和管理。
本教程的重点是向你展示如何在C语言编程中创建和使用开关语句。
基本用法
switch语句很容易实现。其一般语法如下所示。
switch (expr){
casevar1:
//代码
break;
casevar2:
//代码
break;
casevar3:
//代码
break;
casevarN:
//代码
break;
...
....
....
默认:
//代码
}
它是如何工作的
switch语句实现了一个简单的逻辑来评估每个case块。
它首先评估switch块内的表达式。然后,它将switch块的值与每个case块进行比较。
一旦它在一个定义好的案例块中找到了匹配项,它就执行该块中的代码,直到遇到break关键字。
如果它在任何一个定义的case块中没有遇到匹配,它就会跳到default语句并执行其中的代码。默认块是可选的,如果在不匹配的情况下没有必要的动作,可以省略。
**注意:**最好确保每个case语句以break语句结束,以防止匹配块之后的所有语句被执行。
C 切换案例语句示例
让我们用一个非常简单的例子来说明开关语句。
#include <stdio.h>
intmain() {
intvar= 5;
switch (var ){
case3:
printf("The value is 3" );
break;
case4:
printf("The value is 4" );
break;
case5:
printf( "The value is 5");
break;
default:
printf( "The value is neither 3, 4 or 5") ;
}
return0;
}
如果我们运行上面的例子,我们应该得到一个类似于下面的输出。
值是5
下面的流程图说明了上述程序的逻辑。
嵌套的开关语句
C语言允许你在switch语句里面有嵌套的switch语句。嵌套的开关语句与外部开关的值相联系。
请看下面的例子。
#include <stdio.h>
intmain() {
intdept= 5;
intaccess_code= 2028;
switch (dept){
case1:
switch (access_code){
case2021:
printf( " [+] Valid access code!";
break;
default:
printf("[-] Invalid access code!");
}
break;
default:
printf( "[-] Only Department 1 is allowed!");
}
return0;
}
在上面的例子中,我们实现了两个开关语句。第一个检查所提供的dept是否为1,如果为真,则进入下一个开关块并检查有效的访问代码。
如果dept值不是1,则执行到默认块。
下面是上述代码在正确和不正确的dept和访问代码下的执行情况。
在第一个例子中,dept和访问代码都是正确的;因此,执行从未到达默认块。
在第二个例子中,dept和access代码都是不正确的;因此,执行时立即跳到第一个默认块。
开关语句的准则
以下是在C语言中创建switch语句时值得注意的快速指南。
- 你必须向switch关键字传递一个表达式。
- 案例语句必须检查唯一的值
- 使用break关键字终止每个case块。
- 你可以嵌套多个switch语句。
- 当需要对不匹配的情况进行操作时,可以包括一个默认语句。
总结
本指南带领大家学习了创建和使用C语言开关语句的基本知识。当你有复杂的决策案例,而这些案例可能难以用and if else语句来实现时,切换语句就很有用。