教你輕鬆學會C語言系列之——一種更簡潔、更經典的選擇結構

2020-12-15 向陽花開滿山紅

前文中,我們已經講到了選擇結構的使用語法。在多重條件選擇應用場景中,有表示等值判斷的,也有表示區間範圍的應用。本文,就來分享另外一種簡潔又經典的選擇結構。

關鍵單詞

switch [swit] 轉變, 改變)break [breik] 終止, 中斷)case [keis] 實情, 情況)default [di'f:lt] 默認;預設;預置)

基本語法

儘管多重條件結構可以滿足我們實際的需求。但在實際應用中,特殊是在可選擇的條件特別多的情況下,書寫if-else if結構就顯得特別的繁瑣和麻煩。

因此,C語言又提供了一個專門用於處理多分支結構的條件選擇語句稱為switch語句又稱開關語句。使用switch語句直接處理多個分支(當然也包括兩個分支的選擇問題)其語法結構如下:

switch(表達式){case 常量表達式1 //執行代碼塊1 [break;] case 常量表達式2 //執行代碼塊2 case 常量表達式n //執行代碼塊n [default:] //執行代碼塊n+1 [ break;]}

中括號【】表示該項是可選的,可以省略不寫。也就是break、default等關鍵詞,根據實際情況書寫,可有可無。

基礎語法:從C語言開始學編程,為什麼使用switch結構及其語法

控制機制

其語句控制機制是:

首先,計算switch小括號內表達式的值;

然後,與case的值相比較;匹配成功則執行case內的語言;當所有case都匹配不上,則執行default內的語句。過程中,如果語句break,則終止switch語句的執行,即跳出整個的switch結構。

案例演示:從C語言開始學編程,通過經典案例掌握switch結構的基本用法

特別強調

1、break在switch-case語句中充當「終結者」的角色,也就是說,只要在switch-case語句中遇到了break,程序就會馬上結束switch-case語句,而執行後面的語句。

2、如果沒有break,則從匹配的標籤開始,直到遇見break或者switch語句結束前的所有語句都會被執行。

3、在C中switch後面括號內的表達式必須是整形、字符型、或者枚舉類型。

4、每一個case的常量表達式的值必須不同,否則就會出現互相矛盾的現象。

5、default是可選的,類似於條件語句if-else中的else,default可以在switch中的任何位置出現,不會影響程序運行。

6、除了空語句序列外,其他的case語句或者default語句執行後,最好通過break來結束當前switch語句。

綜合案例

猜拳遊戲,是一個很經典的互動遊戲。在日常生活的各種娛樂場合,無論大人小孩都玩的不亦樂乎。

那麼,如何與機器對決呢?用之前的多重條件結構其實是可以實現的,但使用switch結構,會讓程序更簡潔。不同的場景使用哪種條件結構更合適,這需要各位朋友在大量的練習後,自然而然就會明白了。

猜拳遊戲具體實現,可分如下幾步,具體參考視頻講解。

1、用戶出拳2、電腦隨機出拳3、判斷勝負

項目分析:從C語言開始學編程,已知年月,判斷該年該月有多少天?

至此,有關C語言中條件結構的內容就全部分享完畢。

相關焦點

  • 教你輕鬆學習C語言系列之——從「Hello World」開始夢想起航
    為什麼選擇C語言作為入門教程呢?有兩點原因:第一:TIOBE 4月程式語言排行1-20 Java以16.73%的指數,穩坐程式語言的「霸主」地位。同時,C語言也以16.72%的指數緊隨其後,說明C語言的熱度依然很高。
  • 教你輕鬆學會C語言系列之——五花八門的運算符
    在2017年年底公布的全球超算500強榜單中,中國超級計算機「神威·太湖之光」位於榜首,其浮點運算速度峰值可達每秒12.5億億次,持續運算速度為每秒9.3億億次。回到程序語言中,比如:「1+1」就是一個最簡單的表達式,其中的兩個數字(1)就是操作數,加號(+)就是運算符,共同構成了一個表達式。
  • 沉默,有時是一種更高級的語言,是一種埋藏在心底的力量
    有些人認為情商高,就是會說話,什麼話題都能滔滔不絕,與誰交談都能輕鬆自如。但是,言多必失、禍從口出也是有一定道理的,因為有些話只能對自己說,有時必須保持沉默,這不僅是人際交往的智慧,也是給自己的人生留下一個「出口」。只顧自己嘴上痛快的人,惹人生厭,顯得沒教養、情商低。因此,高情商的人不僅會說話,更懂得適時沉默。
  • C語言怎麼樣?今天聊聊C語言的發展史!
    C語言發展史的點點滴滴。 任何一種新事物的出現都不是來自於偶然,而是時代所驅使的必然結果。 如果你問我:C語言有多偉大。那麼,我可能會想一下,說:多偉大我不知道,但是我知道很偉大。
  • C語言基礎(下)
    C語言的世界結構體類型什麼是結構體我們觀察現實世界的時候,可以發現很多的東西它都是由不同的部分組合起來的可以理解成是對現實世界的抽象結構體不僅可以記錄不同類型的數據,而且使得數據結構是「高內聚,低耦合」的,更利於程序的閱讀理解和移植,而且結構體的存儲方式可以提高CPU對內存的訪問速度。
  • 開課吧:C++/C語言相關崗位介紹!什麼樣的人適合學C?
    C語言學習想從事IT開發者本科大學生,沒有計算機基礎或很弱,有針對零基礎的從入門到精通課程想做C++算法者對算法感興趣,卻不知道如何入門,課程會有針對性地進行算法強化挑戰技術拿高薪者C/C++是所有其他語言的基石,學會技術的根和術,擁有核心競爭力
  • 如何用C語言實現面向對象編程OOP?
    舉個例子吧,我現在有個計劃,要去北京,OOP語言是直接給你一個車,然後你自己設定路線去北京就好,而C語言是需要你自己製造零件,自己組裝好車,然後再自己設定路線,最後到達北京。C語言比較費勁,但是程序的效率很高。 過程&對象?一個對象就是由或多或少的針對這個對象的過程構成的,當然其中是少不了必要的屬性。
  • 大神為你分析 Go、Java、C 等主流程式語言
    在論述的過程中會結合華為各語言編程專家和華為電信軟體內部的骨幹開發人員的交流,摒棄語言偏好或者語言教派之爭,儘量以客觀公正的角度來論述下各個語言的特點和不足,對語言選型作為一個客觀的參考。把這些寫出來,期望得到大家的指正與反饋,讓整個分析更客觀,性能方面,著重對 Go 做深入剖析參考。內容很多,期望不會讓你望而卻步。
  • 在計算機軟體領域 C語言之父和Linux之父誰更偉大
    足可見unix對現在作業系統的影響,其地位就像《易經》,為群經之首。 4)  第一個C語言編譯器是怎樣編寫的? 不知道你有沒有想過,大家都用C語言或基於C語言的語言來寫編譯器,那麼世界上第一個C語言編譯器又是怎麼編寫的呢?
  • python與c語言的語法有哪些不一樣的
    在眾多程式語言之中,想必很多人都聽說過Python和C語言,在進行編程學習之前,大家都會問:python和c語言的區別有哪些?我該如何選擇?接下來我們來看看吧。python與C的區別如下:1、語言類型:Python是一種基於解釋器的語言,會逐行讀取代碼,將Python編譯為字節碼,由大型C程序解釋;C是一種編譯語言,完整的原始碼將直接編譯為機器代碼,由CPU直接執行。
  • 北大青鳥建大IT學院:高中生初學編程該選擇什麼語言?
    對於高中生來說,選擇一門合適的程式語言作為入門的語言對於培養自己編程的興趣會有很大的幫助。在眾多程式語言中,有些程式語言迴避其他語言要好學,一起來看看適合新手學習的程式語言有些。1、Pythonpython是近幾年比較火熱的程式語言之一,因其簡單易上手,是很多年輕人入行的第一選擇語言。python是一種面向對象、解釋型電腦程式設計語言,1989年底發明,1991年第一版公開發行。
  • 第一篇:C語言編程基礎語法
    本專欄系列分六篇,總結了C語言基礎知識的核心要點。教學視頻已上線,讀者可根據自身情況有選擇性地學習。屬於高級語言,更接近人類語言邏輯,需要編譯器編譯,執行依賴運行環境;但容易學習。其特點:模塊化編程程序設計,層次清晰;語句簡潔,提出程序庫概念;功能強大,系統、應用軟體均可開發;移植性好,適合不同的作業系統。除此之外,C語言還有豐富的運算符、數據結構等,程序設計自由度大,可以對硬體進行操作。
  • 神操作:教你如何將Vim變成一個R語言IDE
    【IT168 技術】首先說明,本文不適合R語言初學者閱讀、模仿和使用,如果是初學者,那麼RStudio可能是更適合也更完美的工具。如果你在工作生活中遇到Vim / Emacsland,那麼本文可能會給你解惑不少。  為什麼不直接使用RStudio呢?
  • C語言程序結構3:循環結構
    循環結構可以減少代碼重複書寫的工作量,用來描述重複執行某段算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do while循環和for循環。
  • 三星c系列產品舉例以及介紹 與a系列對比評測【圖文】
    作為國際上知名的手機品牌,三星旗下分為多個系列,分別對應不同的消費人群,它們的型號定價以及實際使用表現等等幾個方面均會有所區別,因此大家在選擇購置的時候應該結合自己的需求預算進行考慮,有必要的時候也可以通過諮詢相關專業人士來獲取更多的信息。今天為大家帶來的內容就是三星c系列這個三星旗下經典系列的產品舉例和區別評測信息。
  • C語言編程規範 clean code
    }}初始化初始化包括結構體、聯合體及數組的初始化規則2.10 初始化換行時要有縮進,或進行合理對齊結構體或數組初始化時,如果換行應保持4空格縮進。從可讀性角度出發,選擇換行點和對齊位置。int*p3; // Bad: 兩邊都沒空格int * p4; // Bad: 兩邊都有空格選擇一種風格,並保持一致性。選擇"*"跟隨類型風格時,避免一行同時聲明帶指針的多個變量。
  • 《超獵都市》測試資格獲取圖文教程 手把手教你輕鬆學會
    《超獵都市》測試資格獲取圖文教程 手把手教你輕鬆學會 來源:www.18183.com作者:阿姆斯特朗雷時間:2020-07-03 分享到: 育碧免費「吃雞」遊戲《超獵都市》2020年7月3日開啟內測,本作由《刺客信條》、《孤島驚魂》、《看門狗》、《湯姆克蘭西》系列開發工作室——蒙特婁全權負責。
  • 用心理學教你破解肢體語言,把握愛情的節奏
    在交流的過程中,你是否能讀懂對方表現的具體姿勢和肢體語言,決定了你是否可以通過做每件事來為自己的魅力價值加分。接下來,我將引導大家從心理學的角度來理解,在性交往的過程中,什麼是合適的交際空間和恰當的肢體語言,這樣你就可以避免被稱為「直男」或「直女」的尷尬,教你如何掌握正確的交際節奏和掌握這場男女愛情追逐遊戲的主動權。
  • 門外漢入門級C語言學習筆記——從東拉西扯中硬核回歸
    筆記主要摘自於:華章科技 《手把手教你學C語言》別的咱也不敢亂說總之,面向過程語言中最經典、重要的是C,而C的缺陷,在學完面向對象之後才能體會到。1.2 實踐角度 比如語言運行速度的比較——機器語言越低級速度越快,高級語言中C最快,C++其次,最慢的是java和C#,當然,改進之處在於——他倆雖慢但任何機器都可運行,且結果一致。
  • 奧卡姆剃刀原理:去除無用的東西,讓你更簡潔高效!
    但要正確理解奧卡姆剃刀原理,是去除無用的內容,所以該做的還是要做,這並不是教你偷懶的思維方式。所以我不得不再三強調這個,因為對奧卡姆剃刀原理錯誤的認知會導致錯誤的結果。現在奧卡姆剃刀原理也還經常用於同一現象下兩種或者多種不同的假說。根據奧卡姆剃刀原理,我們選擇相對簡單或者可以證偽的那一種假說,最好是通過實踐來獲得結果。