亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial programming >> C语言

switch…case in C (Switch Statement in C) with Examples

什么是 C 中的 Switch 语句?

C 中的 switch 语句 测试变量的值并将其与多个案例进行比较。一旦找到 case 匹配,就会执行与该特定 case 相关联的语句块。

交换机块中的每个案例都有不同的名称/编号,称为标识符。将用户提供的值与 switch 块内的所有 case 进行比较,直到找到匹配项。

如果没有找到 case 匹配,则执行 default 语句,控制退出 switch 块。

在本教程中,您将学习-

切换案例语法

如何在“C”程序中实现 switch-case 的一般语法如下:

switch( expression )
{
	case value-1:
			Block-1;
			Break;
	case value-2:
			Block-2;
			Break;
	case value-n:
			Block-n;
			Break;
	default:
			Block-1;
			Break;
}
Statement-x;

Switch 语句流程图

下图说明了如何在 switch case 中选择 case:

C 中的切换案例示例

下面的程序说明了switch的使用:

#include <stdio.h>
    int main() {
        int num = 8;
        switch (num) {
            case 7:
                printf("Value is 7");
                break;
            case 8:
                printf("Value is 8");
                break;
            case 9:
                printf("Value is 9");
                break;
            default:
                printf("Out of range");
                break;
        }
        return 0;
    }

输出:

Value is 8

  1. 在给定的程序中,我们解释了初始化一个值为 8 的变量 num。
  2. switch 构造用于比较存储在变量 num 中的值,并执行与匹配的 case 相关联的语句块。
  3. 在这个程序中,由于变量 num 中存储的值为 8,switch 将执行 case-label 为 8 的 case。执行完 case 后,控制权将脱离 switch,程序会以通过在输出屏幕上打印值来获得成功的结果。

尝试改变变量 num 的值,注意输出的变化。

例如,我们考虑以下默认的程序:

#include <stdio.h>
int main() {
int language = 10;
  switch (language) {
  case 1:
    printf("C#\n");
    break;
  case 2:
    printf("C\n");
    break;
  case 3:
    printf("C++\n");
    break;
  default:
    printf("Other programming language\n");}}

输出:

Other programming language

在 C 中使用 switch case 时,您可以使用唯一标签对多个 case 进行分组。您需要在每种情况下都引入一个 break 语句,以便在 switch 语句的末尾进行分支。

当没有其他匹配时运行可选的默认情况。

我们考虑以下 switch 语句:

#include <stdio.h>
int main() {
int number=5;
switch (number) {
  case 1:
  case 2:
  case 3:
    printf("One, Two, or Three.\n");
    break;
  case 4:
  case 5:
  case 6:
    printf("Four, Five, or Six.\n");
    break;
  default:
    printf("Greater than Six.\n");}}

输出:

Four, Five, or Six.

C 中的嵌套开关

在 C 语言中,我们可以将内部开关嵌入到外部开关中。另外,内部开关和外部开关的大小写常量可以有共同的值,并且没有任何冲突。

我们考虑以下程序,用户输入自己的 ID,如果 ID 有效,它将要求他输入密码,如果密码正确,程序将打印用户名,否则,程序将打印错误密码,如果ID不存在,程序会打印Incorrect ID

#include <stdio.h>
int main() {
        int ID = 500;
        int password = 000;
        printf("Plese Enter Your ID:\n ");
        scanf("%d", & ID);
        switch (ID) {
            case 500:
                printf("Enter your password:\n ");
                scanf("%d", & password);
                switch (password) {
                    case 000:
                        printf("Welcome Dear Programmer\n");
                        break;
                    default:
                        printf("incorrect password");
                        break;
                }
                break;
            default:
                printf("incorrect ID");
                break;
        }
}

输出:

Plese Enter Your ID:
 500
Enter your password:
 000
Welcome Dear Programmer

  1. 在给定的程序中,我们已经解释了初始化两个变量:ID 和密码
  2. 外部开关构造用于比较变量 ID 中输入的值。它执行与匹配案例相关的语句块(当 ID==500 时)。
  3. 如果块语句以匹配的大小写执行,则使用内部开关比较变量密码中输入的值,并执行与匹配大小写关联的语句(当密码==000时)。
  4. 否则,switch case 将触发默认 case 并打印有关程序大纲的适当文本。

为什么我们需要 Switch 机箱?

if-else 语句存在一个潜在问题,即每当替代路径的数量增加时,程序的复杂性就会增加。如果在程序中使用多个 if-else 结构,程序可能会变得难以阅读和理解。有时甚至会迷惑自己编写程序的开发者。

这个问题的解决方法就是switch语句。

switch语句的规则

  • 表达式必须始终执行到结果。
  • 案例标签必须是常量且唯一。
  • 大小写标签必须以冒号 ( :) 结尾。
  • 在每种情况下都必须有一个 break 关键字。
  • 只能有一个默认标签。
  • 我们可以嵌套多个 switch 语句。

总结

  • 开关是“C”中的决策结构。
  • 在涉及多个决策的程序中使用开关。
  • 开关必须包含可执行的测试表达式。
  • 每个 case 都必须包含一个 break 关键字。
  • 大小写标签必须是常量且唯一。
  • 默认是可选的。
  • 多个 switch 语句可以相互嵌套。

C语言

  1. 带开关的电路
  2. 交流电路的一些例子
  3. C# switch 语句
  4. C++ do...while 循环与示例
  5. 带有示例的 C++ Switch Case 语句
  6. 带有示例的 C++ 指针
  7. 带有示例的 C++ 运算符重载
  8. 带有程序示例的 C++ 函数
  9. C# 集合教程与示例
  10. Python Print() 语句:如何通过示例打印
  11. 带有示例的 Python 字符串计数()
  12. 带有示例的 Python round() 函数