日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言switch分支结构

發布時間:2025/3/13 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言switch分支结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、if else的不足
  • 二、switch語句
  • 三、注意事項
  • 四、課后作業
  • 五、版權聲明

一、if else的不足

C語言雖然沒有限制 if else 能夠處理的分支數量,但當分支過多時,用 if else處理會不太方便,而且容易出現 if else配對出錯的情況。例如,輸入一個整數,輸出該整數對應的星期幾的中文表示。

if (day == 0)printf("星期天\n");else if (day == 1)printf("星期一\n");else if (day == 2)printf("星期二\n");else if (day == 3)printf("星期三\n");else if (day == 4)printf("星期四\n");else if (day == 5)printf("星期五\n");else if (day == 6)printf("星期六\n");elseprintf("輸入錯誤。\n");

以上代碼摘自book22.c。

對于這種情況,實際開發中一般使用 switch 語句代替,請看下面的代碼。

switch (day){case 0: printf("星期天\n"); break;case 1: printf("星期一\n"); break;case 2: printf("星期二\n"); break;case 3: printf("星期三\n"); break;case 4: printf("星期四\n"); break;case 5: printf("星期五\n"); break;case 6: printf("星期六\n"); break;default: printf("輸入錯誤。\n"); break;}

先不解釋這段代碼的含義,但這樣看起來舒服多了。

二、switch語句

switch 是另外一種選擇結構的語句,用來代替簡單的、擁有多個分枝的 if else語句,基本格式如下:

switch (表達式){case 整型數值1: 語句 1;case 整型數值2: 語句 2;......case 整型數值n: 語句 n;default: 語句 n+1;}

它的執行過程是:

1)首先計算表達式的值,假設為value

2) 從第一個 case 開始,比較value整型數值1,如果它們相等,就執行冒號后面的所有語句,也就是從語句1一直執行到語句n+1,而不管后面的case 是否匹配成功。

3) 如果value整型數值1不相等,就跳過冒號后面的語句1,繼續比較第二個case、第三個case……一旦發現和某個整型數值相等了,就會執行后面所有的語句。假設value整型數值5相等,那么就會從語句5一直執行到語句n+1

4)如果直到最后一個整型數值n都沒有找到相等的值,那么就執行 default 后的語句n+1

需要重點強調的是,當和某個整型數值匹配成功后,會執行該分支以及后面所有分支的語句。

示例(book29.c)

/** 程序名:book29.c,此程序演示條件分支控制語句用switch代替多個if else * 作者:C語言技術網(www.freecplus.net) 日期:20190525 */ #include <stdio.h>int main() {int day=0; // 定義一個整數變量用于接受鍵盤輸入的數字printf("請輸入0-6之間的數字:"); // 提示用戶輸入scanf("%d",&day); // 接受用戶從鍵盤輸入的數據switch (day){case 0: printf("星期天\n");case 1: printf("星期一\n");case 2: printf("星期二\n");case 3: printf("星期三\n");case 4: printf("星期四\n");case 5: printf("星期五\n");case 6: printf("星期六\n");default: printf("輸入錯誤。\n");} }

運行效果

輸入4,發現和第四個分支匹配成功,于是就執行第四個分支以及后面的所有分支。這顯然不是我們想要的結果,我們希望只執行第四個分支,而跳過后面的其他分支。為了達到這個目標,必須要在每個分支最后添加break;語句。

break 是C語言中的一個關鍵字,專門用于跳出 switch 語句。所謂“跳出”,是指一旦遇到break,就不再執行switch中的任何語句,包括當前分支中的語句和其他分支中的語句;也就是說,整個switch執行結束了,接著會執行整個 switch 后面的代碼。

示例(book30.c)

/** 程序名:book30.c,此程序演示條件分支控制語句用switch中break的用法。* 作者:C語言技術網(www.freecplus.net) 日期:20190525 */ #include <stdio.h>int main() {int day=0; // 定義一個整數變量用于接受鍵盤輸入的數字printf("請輸入0-6之間的數字:"); // 提示用戶輸入scanf("%d",&day); // 接受用戶從鍵盤輸入的數據switch (day){case 0: printf("星期天\n"); break;case 1: printf("星期一\n"); break;case 2: printf("星期二\n"); break;case 3: printf("星期三\n"); break;case 4: printf("星期四\n"); break;case 5: printf("星期五\n"); break;case 6: printf("星期六\n"); break;default: printf("輸入錯誤。\n"); break;} }

運行效果

三、注意事項

  • case后面必須是整數和字符,或者是結果為整數和字符的表達式,但不能包含任何變量。請看下面的例子。
  • switch (result){case 10: printf("..."); break; // 正確,整數case 8+9: printf("..."); break; // 正確,表達式8+9==17是整數case '5': printf("..."); break; // 正確,字符可以轉換為整數case 'A': printf("..."); break; // 正確,字符可以轉換為整數case 'A'+10: printf("..."); break; // 正確,字符可以轉換為整數case 3.14: printf("..."); break; // 錯誤,不能為小數case ii: printf("..."); break; // 錯誤,不能采用變量}
  • default 不是必須的。當沒有 default 時,如果所有case都匹配失敗,那么就什么都不執行。
  • 四、課后作業

    編寫示例程序,在界面上輸入數字的月份(1-12),采用switch語句,輸出對應月份的英文單詞的簡寫和全稱。

    五、版權聲明

    C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
    來源:C語言技術網(www.freecplus.net)
    作者:碼農有道

    如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發我的文章,謝謝!!!
    如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!

    總結

    以上是生活随笔為你收集整理的C语言switch分支结构的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。