C 語言基礎(chǔ)教程

C 語言流程控制

C 語言函數(shù)

C 語言數(shù)組

C 語言指針

C 語言字符串

C 語言結(jié)構(gòu)體

C 語言文件

C 其他

C 語言參考手冊

C 語言 switch 語句

在本教程中,您將通過一個(gè)示例學(xué)習(xí)在C語言編程中創(chuàng)建switch語句。

switch語句使我們可以執(zhí)行許多代替方案中的一個(gè)代碼塊。

雖然您可以使用if...else..if階梯執(zhí)行相同的操作。但是,switch語句的語法更容易讀寫。

switch ... case的語法

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

    case constant2:
      // 語句
      break;
    .
    .
    .
    default:
      // 默認(rèn)語句
}

switch語句如何工作?

表達(dá)式(expression)被評估一次,并與每個(gè)case標(biāo)簽的值進(jìn)行比較。

  • 如果有匹配,則執(zhí)行匹配標(biāo)簽后的相應(yīng)語句。例如,如果表達(dá)式的值等于constant2,則執(zhí)行case constant2:之后的語句,直到遇到break為止。

  • 如果不匹配,則執(zhí)行默認(rèn)(default)語句。

如果不使用break,則會執(zhí)行匹配標(biāo)簽之后的所有語句。

順便說一句,switch語句中的default子句是可選的。

switch語句流程圖

切換語句流程圖

示例:簡單計(jì)算器

//程序創(chuàng)建一個(gè)簡單的計(jì)算器
#include <stdio.h>

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

    printf("輸入一個(gè)運(yùn)算符 (+, -, *, /): ");
    scanf("%c", &operator);
    printf("輸入兩個(gè)操作數(shù): ");
    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;

        // 沒有匹配到任何運(yùn)算符( +, -, *, /)
    default:
        printf("錯(cuò)誤! 運(yùn)算符不正確");
    }

    return 0;
}

輸出結(jié)果

輸入一個(gè)運(yùn)算符 (+, -, *,): -
輸入兩個(gè)操作數(shù): 32.5
12.4
32.5 - 12.4 = 20.1

用戶輸入的運(yùn)算符(-)存儲在operator變量中。而且,兩個(gè)操作數(shù)32.5和12.4分別存儲在變量n1和n2中。

由于operator是 -,因此程序的控制權(quán)跳轉(zhuǎn)到語句

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

最后,break語句終止該switch語句,運(yùn)算完成。

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清