C 语言基础教程

C 语言流程控制

C 语言函数

C 语言数组

C 语言指针

C 语言字符串

C 语言结构体

C 语言文件

C 其他

C 语言参考手册

C 语言 switch 语句

在本教程中,您将通过一个示例学习在C语言编程中创建switch语句。

switch语句使我们可以执行许多代替方案中的一个代码块。

虽然您可以使用if...else..if阶梯执行相同的操作。但是,switch语句的语法更容易读写。

switch ... case的语法

switch (expression)
{
    case constant1:
      // 语句
      break;

    case constant2:
      // 语句
      break;
    .
    .
    .
    default:
      // 默认语句
}

switch语句如何工作?

表达式(expression)被评估一次,并与每个case标签的值进行比较。

  • 如果有匹配,则执行匹配标签后的相应语句。例如,如果表达式的值等于constant2,则执行case constant2:之后的语句,直到遇到break为止。

  • 如果不匹配,则执行默认(default)语句。

如果不使用break,则会执行匹配标签之后的所有语句。

顺便说一句,switch语句中的default子句是可选的。

switch语句流程图

切换语句流程图

示例:简单计算器

//程序创建一个简单的计算器
#include <stdio.h>

int main() {
    char operator;
    double n1, n2;

    printf("输入一个运算符 (+, -, *, /): ");
    scanf("%c", &operator);
    printf("输入两个操作数: ");
    scanf("%lf %lf", &n1, &n2);

    switch (operator)
    {
    case '+':
        printf("%.1lf + %.1lf = %.1lf", n1, n2, n1 + n2);
        break;

    case '-':
        printf("%.1lf - %.1lf = %.1lf", n1, n2, n1 - n2);
        break;

    case '*':
        printf("%.1lf * %.1lf = %.1lf", n1, n2, n1*n2);
        break;

    case '/':
        printf("%.1lf / %.1lf = %.1lf", n1, n2, n1 / n2);
        break;

        // 没有匹配到任何运算符( +, -, *, /)
    default:
        printf("错误! 运算符不正确");
    }

    return 0;
}

输出结果

输入一个运算符 (+, -, *,): -
输入两个操作数: 32.5
12.4
32.5 - 12.4 = 20.1

用户输入的运算符(-)存储在operator变量中。而且,两个操作数32.5和12.4分别存储在变量n1和n2中。

由于operator是 -,因此程序的控制权跳转到语句

printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);

最后,break语句终止该switch语句,运算完成。