c switch语句

本文概述

  • switch-case语句的功能
C语言中的switch语句是if-else-if阶梯语句的替代方法,它允许我们对称为switch变量的单个变量的不同可能值执行多项操作。在这里,我们可以针对单个变量的不同值在多种情况下定义各种语句。
下面给出了用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;
C中switch语句的流程图
c switch语句

文章图片
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

    推荐阅读