C 开关案例语句

194 阅读3分钟

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语句时值得注意的快速指南。

  1. 你必须向switch关键字传递一个表达式。
  2. 案例语句必须检查唯一的值
  3. 使用break关键字终止每个case块。
  4. 你可以嵌套多个switch语句。
  5. 当需要对不匹配的情况进行操作时,可以包括一个默认语句。

总结

本指南带领大家学习了创建和使用C语言开关语句的基本知识。当你有复杂的决策案例,而这些案例可能难以用and if else语句来实现时,切换语句就很有用。