在本教程中,您將通過一個(gè)示例學(xué)習(xí)在C語言編程中創(chuàng)建switch語句。
switch語句使我們可以執(zhí)行許多代替方案中的一個(gè)代碼塊。
雖然您可以使用if...else..if階梯執(zhí)行相同的操作。但是,switch語句的語法更容易讀寫。
switch (expression)
{
case constant1:
// 語句
break;
case constant2:
// 語句
break;
.
.
.
default:
// 默認(rèn)語句
}switch語句如何工作?
表達(dá)式(expression)被評(píng)估一次,并與每個(gè)case標(biāo)簽的值進(jìn)行比較。
如果有匹配,則執(zhí)行匹配標(biāo)簽后的相應(yīng)語句。例如,如果表達(dá)式的值等于constant2,則執(zhí)行case constant2:之后的語句,直到遇到break為止。
如果不匹配,則執(zhí)行默認(rèn)(default)語句。
如果不使用break,則會(huì)執(zhí)行匹配標(biāo)簽之后的所有語句。
順便說一句,switch語句中的default子句是可選的。

//程序創(chuàng)建一個(gè)簡(jiǎn)單的計(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)算符(-)存儲(chǔ)在operator變量中。而且,兩個(gè)操作數(shù)32.5和12.4分別存儲(chǔ)在變量n1和n2中。
由于operator是 -,因此程序的控制權(quán)跳轉(zhuǎn)到語句
printf("%.1lf - %.1lf = %.1lf", n1, n2, n1-n2);最后,break語句終止該switch語句,運(yùn)算完成。