添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

C 语言中的 Switch 语句是什么?

C 中的 Switch 语句 测试变量的值并计算ares 将其与多个案例组合。一旦找到匹配的案例,就会执行与该特定案例关联的语句块。

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

如果未找到 case 匹配,则执行 default 语句,并且控制权离开 switch 块。

  • 表达式可以是整数表达式,也可以是字符表达式。
  • 值 1、2、n 是用于单独标识每个案例的案例标签。请记住,案例标签不应相同,因为这可能会在执行程序时产生问题。假设我们有两个案例的标签都为“1”。那么在执行程序时,即使您希望程序执行第二个案例,也会执行首先出现的案例。这会在程序中产生问题,并且不会提供所需的输出。
  • 案例标签始终以冒号 (:) 结尾。每个案例都与一个块相关联。
  • 块不过是针对特定情况分组的多个语句。
  • 每当执行 switch 时,测试表达式的值都会与我们在 switch 中定义的所有案例进行比较。假设测试表达式包含值 4。将此值与所有案例进行比较,直到在程序中找到标签为 XNUMX 的案例。一旦找到一个案例,就会执行与该特定案例相关的语句块,并且控制权将脱离 switch。
  • 每个 case 中的 break 关键字表示特定 case 的结束。如果我们不在每个 case 中放置 break,那么即使执行了特定 case,C 中的 switch 仍将继续执行所有 case,直到到达结尾。这不应该发生;因此我们总是必须在每个 case 中放置 break 关键字。一旦 case 执行完毕,break 将终止 case,并且控制权将脱离 switch。
  • default case 是可选的。只要 test-expression 的值与 switch 中的任何 case 都不匹配,就会执行 default 。其他wise,switch中不需要写default。
  • 一旦执行了开关,控制权将转到语句 x,程序将继续执行。
  • Switch 语句流程图

    弗洛wing 该图说明了如何在 switch case 中选择一个案例:

    Switch 语句流程图
    Switch 的工作原理
    不要错过:
    • 位wise OperaC 语言中的运算符:AND、OR、XOR、 Shift & 补充
    • 使用 malloc()、calloc() 函数在 C 语言中进行动态内存分配
    • C 和 C 之间的区别 Java
    • 在给定的程序中我们已经解释初始化了一个 变量 值为 8 的数字。
    • switch 结构用于比较变量 num 中存储的值并执行与匹配情况相关的语句块。
    • 在这个程序中,由于变量 num 中存储的值为 8,因此 switch 将执行 case 标签为 XNUMX 的 case。执行完该 case 之后,控制权将脱离 switch,程序将通过在输出屏幕上打印该值来终止并显示成功结果。
    • 尝试改变变量 num 的值并注意输出的变化。

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

      #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 进行分组。您需要在每个 case 中引入一个 break 语句,以便在 switch 语句的末尾进行分支。

      当没有其他匹配时,可选的默认案例将运行。

      我们考虑以下wing 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 语言中的嵌套 Switch

      In C ,我们可以将内层开关嵌入到外层开关中。此外,内层开关和外层开关的 case 常量可以具有共同的值,并且不会发生任何冲突。

      我们认为wing 程序要求用户输入自己的ID,如果ID有效,程序将要求用户输入密码,如果密码正确,程序将打印用户的名字,其他wise ,程序将打印“Incorrect Password”,如果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:
      Enter your password:
      Welcome Dear Programmer
      
    • 在给定的程序中,我们解释了初始化两个变量:ID 和密码
    • 外部 switch 结构用于比较变量 ID 中输入的值。它执行与匹配的案例(当 ID==500 时)相关的语句块。
    • 如果使用匹配的案例执行块语句,则使用内部开关比较变量密码中输入的值,并执行与匹配的案例链接的语句(当密码==000时)。
    • 其他wise,switch case 将触发默认情况并打印有关程序大纲的适当文本。
    • 为什么我们需要 Switch 外壳?

      有一个潜在的问题 if-else 语句 这是 complex每当替代路径的数量增加时,程序的执行难度就会增加。如果在程序中使用多个 if-else 结构,程序可能会变得难以阅读和理解。有时甚至会让编写程序的开发人员感到困惑。

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

      switch 语句的规则

    • 表达式必须始终执行并产生结果。
    • 案例标签必须是常量且唯一的。
    • 案例标签必须以冒号 (:) 结尾。
    • 每种情况下都必须有一个 break 关键字。
    • 只能有一个默认标签。
    • 我们可以嵌套多个 switch 语句。
    • 开关是决策结构,C“。
    • 在涉及多个决策的程序中会用到开关。
    • 开关必须包含可执行的测试表达式。
    • 每个案例都必须包含一个 break 关键字。
    • 案例标签必须是常量且唯一的。
    • 默认值是可选的。
    • 多个 switch 语句可以相互嵌套。