江南侠客(上海)

江南侠客(上海)

介绍

在C语言中,选择结构是控制程序流程的重要部分,其中多选一结构是常用的选择结构之一。本文将针对C语言中的多选一结构——switch进行详细介绍,包括其结构、执行过程、特点以及与if结构的对比。

switch的结构

switch的结构如下所示:

switch (匹配标签)
{
    case 标签1:
        code1;
        break;
    case 标签2:
        code2;
        break;
    case 标签3:
        code3;
        break;
    default:
}

switch的执行过程

  1. 用匹配标签与标签进行依次比较,相等的,就执行相应分支。
  2. 匹配标签是整型表达式。
  3. 标签是整型常量表达式。
  4. break的作用是跳出结构。

举例如下:

int a = 3;
switch (a)
{
    case 1:
        printf("case 1\n");
        break;
    case 2:
        printf("case 2\n");
        break;
    case 3:
        printf("case 3\n");
        break;
    default:
        printf("default\n");
}

switch的特点

  1. 标签就是分支编号,不能重复。
  2. 编号不一定连续,是个整数即可。
  3. default相当于else,可以不用写。
  4. break的作用是跳出结构,最后一个分支不用写break。
  5. 标签只能是整数,小数直接报错。
  6. 标签内定义变量需要加大括号。

不写break

break的作用是中断跳出switch结构,没有break,对应的分支执行完不结束switch,继续执行下一个分支,直到遇见break或者switch结构结束。

举例如下:

int a = 2;
switch (a)
{
    case 1:
        printf("case 1\n");
        break;
    case 2:
        printf("case 2\n");
        //无break,执行完2继续执行3
    case 3:
        printf("case 3\n");
        break;
    //此处结束switch结构
    default:
        printf("default\n");
}

switch结构实现范围的思路

依赖上面的思路,判断变量a是否在2~8之间,a必须是整型。

int a = 2;
switch (a)
{
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 8:
        printf("在范围\n");
        break;
    default:
        printf("不在范围\n");
}

switch与if的对比

  1. switch实现范围过于繁琐,如果范围加大,那么就要写更多case,而if可以写范围判断。
  2. switch不能涉及小数,if可以。

总结

本文对C语言中的多选一结构——switch进行了详细介绍,包括其结构、执行过程、特点以及与if结构的对比。相信读者在阅读完本文后,可以更好地理解并运用switch结构。

05-16 23:24