大家好,如果您還對c語言中switch語句不太了解,沒有關系,今天就由本站為大家分享c語言中switch語句的知識,包括c語言中switch用法舉例的問題都會給大家分析到,還望可以解決大家的問題,下面我們就開始吧!
c語言怎么使用switch語句
方法/步驟
第一首先創建一個c語言項目。
然后在導入需要的頭文件。
第二然后寫入頭文件stdio.h。
再寫入mian主函數。
第三然后定義一個int類型的i變量。
再輸出該該變量的值。
第四然后接受i變量的數值。
代碼為scanf("%d",&i)。
第五然后寫入多幾個除mian主函數以外的函數。
在這些函數中,輸出內容。
第六然后利用switch語句接受i變量。
再進行判斷和跳轉到其他函數中,執行函數的內容。
這樣switch語句的功能可以體現出來了。
在c語言中switch語句主要就是用于判斷和跳轉頁面的語句,所以今天就來為大家介紹c語言怎么使用switch語句。
c語言中switch語句里的break加與不加有什么關系
case后面的常量表達式實際上只起語句標號作用,而不起條件判斷作用,即“只是開始執行處的入口標號”。
因此,一旦與switch后面圓括號中表達式的值匹配,就從此標號處開始執行;而且執行完一個case后面的語句后,若沒遇到break語句,就自動進入下一個case繼續執行,而不再判斷是否與之匹配,直到遇到break語句才停止執行,退出switch語句。
因此,若想執行一個case分之后立即跳出switch語句,就必須在此分支的最后添加一個break語句。
在switch(表達式)語句中
C標準定義:switch語句后面的表達式可以是整型,字符型,枚舉型因為byte能夠無損的轉換為int,但是如果是long類型,轉換會有丟失,所以不行
c語言switch選擇結構的特點
switch語句屬于選擇語句,其表達形式就像一個選擇結構,大體的格式如下:
switch(表達式){//short、int、char
case取值1:
執行語句1;
break;case取值2:
執行語句2;break;......default:
默認執行語句;break;}
語法結構解讀:
1、其中的“表達式”的結果以及case后的“取值”只能是3種類型:short、int和char;
2、兩種結束switch語句的情況
1)遇到break,直接跳出選擇;
2)執行到switch語句結束;
3、default語句不論放在哪個地方,它都是在沒有匹配的情況下才會去執行,也就是說case無論在什么情況下都會比default先執行;
4、程序會按照順序執行case的匹配,如果匹配的case語句或者default語句后沒有對應的break來終止,那么程序還會繼續向下執行匹配,執行匹配到的表達式,直到遇到brak或switch語句結束。
5、如果所有的case都沒有匹配,則執行default里面默認的表達式
老師說,C語言中的switch和if語句是等價的,能舉例子說說嗎要注意什么嗎
謝邀。
嚴格來說,C語言中的switch語句和if語句并不總是完全等價,使用switch語句實際上是有一定限制的。
下文將舉例子解釋相信題主已經對if/else以及布爾代數有了比較深入的認識,可以對現實世界中的復雜問題,分情況處理了。事實上,在C語言中,還有一種分支語句,就是switch語句,在介紹它之前,先來考慮這個問題:
輸入1-7七個數,程序要對應著分別打印出Monday-Sunday(星期一到星期天)。這樣的問題,用if/else語句非常容易解決,請看如下代碼:
以上代碼很好的解決了問題,不過使用C語言中的switch語句也是能夠非常簡單的解決問題,switch語句可以產生具有多個分支的控制流程,它的格式是:
知道了C語言switch語句的格式后,使用它重寫上述代碼就簡單了,請看:
上面的例子我們傳給print_day的參數是2,所以從“情況2”(case2)處開始執行,然后打印“Tuesday”,接著break。break是C語言中的關鍵字,它的作用是挑出整個switch語句塊。C語言規定各case的常量表達式必須互不相同,各case均不等于常量表達式,則進入default分支。
使用switch語句要注意幾點case后面跟的必須是常量表達式,因為這個值必須在編譯時計算出來。case后面跟的常量表達式的值必須是整型,因為浮點型是不能精確比較相等不相等的,整型或字符型則可以,這是由不同類型數據的存儲方式決定的。進入case后如果沒有遇到break語句就會一直往下執行,后面其它case或default下面的語句也會被執行到,直到遇到break,或者執行到整個switch語句塊的末尾。通常每個case后面都要加上break語句,但有時候故意不加break來利用這個特性,例如:
這樣一來,輸入1-5都會輸出“Weekday”(工作日),輸入6、7則會輸出“Weekend”(周末)。
switch語句不是必不可缺的,顯然可以用一組if..elseif…elseif…else代替,但是一方面用switch語句會使代碼更清晰,另一方面,有時候編譯器會對switch語句進行整體優化,使它比等價的if/else語句所生成的目標代碼效率更高。
另外,由于switch語句的case后要求是常數,限制了其使用范圍,所以要用其替換
if...else
語句,需要保證if的條件是常數表達式。如果條件表達式很難寫成常數表達式,switch語句就很難使用了。不過工具是死的,人是活的,switch語句和if語句各有優缺點,只要掌握了,我們應該總是能夠根據實際條件靈活的寫代碼的。
歡迎在評論區一起討論,質疑。文章都是手打原創,每天最淺顯的介紹C語言、linux等嵌入式開發,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。
OK,關于c語言中switch語句和c語言中switch用法舉例的內容到此結束了,希望對大家有所幫助。