在本教程中,您將通過一個(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)被評估一次,并與每個(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子句是可選的。
//程序創(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)算完成。