03.01 單片機中if與switch的差異有哪些?

鄂A開車拿口罩


if和switch都是C語言中常用的條件判斷語句,兩者所實現的效果是一樣的,但是在應用、語法上不同,下面分別介紹。

if的用法

if和else搭配一起使用,可以實現多個關係表達式的判別,常用的if結構有三種。第一種用法只有一個if判斷只用來判斷一個分支;第二種和一個esle配合使用,對關係表達式的兩層意思都做不同的語句表達式;第三種用法和多個else配合使用,用於多層判別,可以具有多個else if。三種用法的結構如下圖所示。

if else應用比較靈活,可以應用在較多的關係判別中,但是需要注意的是,if else必須能遍歷所有的可能值,否則容易導致bug,再有就是if括號中的關係表達式的結果必須是0或者1。

switch的用法

switch和case一起使用,結束處用break終止。

switch case其實是一個跳轉表,只要case後面的內容和判別表達式的內容一致,就會順序執行後面的語句,直到遇到break後跳出,如果都不滿足條件,則執行default後面的語句。

switch case語句對跳轉分支較多的情況比較合適,會直接跳轉至滿足判別條件的分支處,分支越多,效率越高。

以上就是這個問題的回答,感謝留言、評論、轉發。更多精彩內容請關注本頭條號:玩轉嵌入式。感謝大家。


玩轉嵌入式


if 和 switch 都是C語言的判斷語句

一般的場合使用 if 或者 switch 都可以達到相同的效果,但其實也是有很大的差異和優缺點的。

什麼時候使用if?

if 顧名思義就是如果。如果條件成立就執行,如果只做簡單的判斷,使用 if 就可以

if 的使用比較靈活,判斷語言比較多時,還可以使用else if


else 可以用也可以不用,根據實際需要決定是否使用

因為程序是從上到下動行的,條件1不成立,就需要判斷條件2,條件3還不成立,還需要判斷條件3,如果條件比較多,佔用時間就相對較多。

什麼時候用switch?

switch是選擇性跳轉語句,需要case和break配合一起使用;如果沒有break;執行完當前 case 語句後,還會繼續執行後面的 case 語句哦,直到break才會退出。

根據條件值,直接跳轉到執行語句,所佔用的運行時間較少;但case 後面的值必須是精確的固定值,不能像if 一樣判斷大小。所以switch的使用也有很多侷限性。

但使用switch 時,判斷的值必須是

int 或 enum 類型,因為case 後面的數值要精確匹配,浮點數是編譯不了的。

歡迎關注@電子產品設計方案,一起享受分享與學習的樂趣!關注我,成為朋友,一起交流一起學習

  • 記得點贊和評論哦!非常感謝,如有錯、漏,歡迎批評指定。

電子產品設計方案


編譯成彙編,其實都一樣的


分享到:


相關文章: