那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言基礎篇--選擇/順序/循環結構

正點原子 ? 2022-04-02 11:00 ? 次閱讀

以下文章來源于:公_眾_號開源電子

前言

C語言中,按照程序的執行流程不同,分為順序結構、分支結構和循環結構。多么復雜的邏輯事物都是由這三個結構組成。

順序結構

順序結構是最簡單的一種流程結構,它采用自上而下的方式逐條執行各語句。簡易順序結構如下所示:

pYYBAGJHtWuAAAbSAAA5cJxcb7Q569.png

分支結構

分支結構,又稱選擇結構,可以控制程序的部分流程是否被執行,或者是從多條執行路徑種選擇一條來執行。在C語言中有兩種選擇語句:①if語句,用來實現兩個分支的選擇結構②switch語句,用來實現多分支的選擇結構。

選擇結構if,具體用法如表格所示:

if (表達式) {語句}

if (表達式) {語句1}

else {語句2}

if (表達式) { if (表達式) {語句} }

else {語句}

if (表達式) {語句}

else if (表達式) {語句}

else {語句}

選擇結構switch,具體使用格式如下:

switch(整型表達式)
{
  case整型常量表達式1:
  [語句1;break;]
  case整型常量表達式2:
  [語句2;break;]
  case整型常量表達式3:
  [語句3;break;]
 …
  [default:
  語句n;break;]
}

在程序運行時,首先會計算整型表達式的值,然后用該值與后面的所有case標簽進行一一匹配(即查看該值是否與case標簽的表達式的值相同)。如果有匹配的case標簽,則從該case標簽起,執行后續的語句,直至遇到break語句為止。如果沒有匹配到case標簽,則從default標簽起,執行后續的語句,直到遇到break為止。

這里特別需要注意:①case后帶的表達式一定要是常數,并且是整型。②在語句后面通常是有break關鍵字。③ 最后一般有default,即前面case沒有一個符合的情況,就會調到default里執行。雖然說語法上可以允許沒有default,但是為了完整,建議是需要的。

那么if和switch這兩種選擇結構有啥區別呢?

if語句比較適用在對比條件比較復雜的且分支比較少的情況下使用;switch語句則是適用在對比條件比較簡單且分支比較多的情況下使用;正常情況下,先考慮能不能用switch語句,假如不滿足使用需求,則使用if語句。當然,不管黑貓白貓捉到老鼠的就是好貓,能實現效果即可。

循環結構

循環結構就是重復執行一個語句塊,直到不滿足某個條件為止。在C語言中有三種循環語句:①while語句②do while語句③for語句

while語句也稱while循環,具體使用格式如下:

while(表達式)
  語句

while語句根據小括號內表達式的值來決定是否執行語句,當表達式的值為假時,循環結束,語句不會被執行;假如表達式的值為真,語句被執行,然后會再次判斷表達式的值,如此反復,直至表達式的值為假。

do while語句也稱do while循環,具體使用格式如下:

do 
語句
while(表達式)

從結構上,由“do”關鍵字開頭,緊接著是語句也就是循環體了,最后是while關鍵字和表達式。do while語句是先執行循環體,然后再檢查條件是否成立,若成立,再執行循環體,這就是跟while語句不同。

for語句,相對前面兩個循環語句復雜一點,具體使用格式如下:

for(表達式1;表達式2;表達式3)
語句

相比前面的while和do while語句,for語句的表達式有三個,表達式之間用‘;’隔開,這三個表達式的作用和執行時期是不一樣的,具體情況如下表:

表達式作用執行時期
表達式1通常在這個地方對循環變量進行初始化或賦值開始時執行1次
表達式2表達式的值為真時執行循環體,為假時結束for語句循環體執行前
表達式3通常在這個地方對循環變量進行修改,通常是加減操作循環體執行后

具體執行流程:在for語句被執行前,首先會執行表達式1,然后再檢查表達式2的值:假如為假,不執行循環體,結束for語句;假如為真,則執行循環體語句。執行完循環語句后,再去執行表達式3,并再次去檢查表達式2的值,如此反復,直到表達式2的值為假,結束for語句。

這三個循環語句,哪種情況用哪個好呢?

如果程序中固定了循環的次數,那么就可以采用for語句。如果程序中必須執行一次程序,那么就可以使用do while語句。除了以上兩種情況,就可以使用while語句。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6043

    文章

    44621

    瀏覽量

    638573
  • 嵌入式
    +關注

    關注

    5092

    文章

    19178

    瀏覽量

    307694
  • C語言
    +關注

    關注

    180

    文章

    7614

    瀏覽量

    137720
  • 電子技術
    +關注

    關注

    18

    文章

    917

    瀏覽量

    56311
收藏 人收藏

    評論

    相關推薦

    Simcenter Micred Power Tester功率循環測試儀

    SimcenterMicredPowerTester功率循環測試儀使用結合了有效功率循環和熱結構退化監測的測試硬件,評估功率半導體的熱可靠性和使用壽命。為什么選擇
    的頭像 發表于 01-09 14:33 ?263次閱讀
    Simcenter Micred Power Tester功率<b class='flag-5'>循環</b>測試儀

    深入理解C語言循環語句的應用與優化技巧

    在程序設計中,我們常常需要重復執行某一段代碼。為了提高效率和簡化代碼,循環語句應運而生。C語言作為一門經典的編程語言,提供了多種循環控制
    的頭像 發表于 12-07 01:11 ?251次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>循環</b>語句的應用與優化技巧

    結構體成員的順序會影響結構體的大小嗎

    相同的結構體成員,如果把順序調整一下,會不會影響結構體的大小? 答案是會的,這主要跟字節對齊有關。 比如這樣的結構體,前面兩個是 char 類型,后面跟上一個 int 類型。 stru
    的頭像 發表于 11-25 16:24 ?268次閱讀

    如何選擇適合自己的編程語言

    在當今這個技術日新月異的時代,編程語言選擇對于軟件開發者來說至關重要。不同的編程語言有著不同的優勢和適用場景,因此,選擇合適的編程語言不僅
    的頭像 發表于 11-15 09:37 ?594次閱讀

    C語言C++中結構體的區別

    同樣是結構體,看看在C語言C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?356次閱讀

    C語言與Java語言的對比

    C語言和Java語言都是當前編程領域中的重要成員,它們各自具有獨特的優勢和特點,適用于不同的應用場景。以下將從語法特性、內存管理、跨平臺性、性能、應用領域等多個方面對C
    的頭像 發表于 10-29 17:31 ?438次閱讀

    計算機程序的三種基本控制結構是什么

    順序被執行一次,直到程序結束。在順序結構中,每個語句都是順序執行的,不存在任何跳轉和分支。 選擇結構
    的頭像 發表于 09-04 17:00 ?1649次閱讀

    技術干貨驛站 ▏深入理解C語言:掌握程序結構知識

    在計算機編程的世界中,C語言被廣泛認可為一門強大而高效的編程語言,其簡潔的語法和直接的指令使得它成為了許多程序員的首選。了解C語言的程序
    的頭像 發表于 07-27 08:45 ?1540次閱讀
    技術干貨驛站 ▏深入理解<b class='flag-5'>C</b><b class='flag-5'>語言</b>:掌握程序<b class='flag-5'>結構</b>知識

    【《大語言模型應用指南》閱讀體驗】+ 基礎

    今天開始學習《大語言模型應用指南》第一——基礎,對于人工智能相關專業技術人員應該可以輕松加愉快的完成此閱讀,但對于我還是有許多的知識點、專業術語比較陌生,需要網上搜索學習更多的資
    發表于 07-25 14:33

    PLC編程語言C語言的區別

    在工業自動化和計算機編程領域中,PLC(可編程邏輯控制器)編程語言C語言各自扮演著重要的角色。盡管兩者都是編程語言,但它們在多個方面存在顯著的區別。本文將從多個維度深入探討PLC編程
    的頭像 發表于 06-14 17:11 ?3235次閱讀

    PLC常用編程語言有哪些

    語言多種多樣,每種語言都有其獨特的特點和適用場景。本文將詳細介紹PLC常用的編程語言,包括梯形圖(LD)、指令表(IL)、功能模塊圖(FBD)、順序功能流程圖(SFC)以及
    的頭像 發表于 06-14 16:58 ?1751次閱讀

    嵌入式中C語言結構體基本實現

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構C語言編程中允許您存儲不同數據類型的數據。
    的頭像 發表于 05-11 08:49 ?1129次閱讀
    嵌入式中<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>結構</b>體基本實現

    C語言結構體史上最詳細的講解【軟件干貨】

    struct結構體數據類型 前言 我們知道,在C語言中有一些基本的數據類型,如?char?int?float?long?double?string(c99) 等等數據類型,他們可以表示
    的頭像 發表于 03-28 17:52 ?853次閱讀

    使用 MISRA C++:2023? 避免基于范圍的 for 循環中的錯誤

    在前兩博客中,我們?向您介紹了新的 MISRA C++ 標準?和?C++ 的歷史?。在這篇博客中,我們將仔細研究以 C++ 中?for?循環
    的頭像 發表于 03-28 13:53 ?861次閱讀
    使用 MISRA <b class='flag-5'>C</b>++:2023? 避免基于范圍的 for <b class='flag-5'>循環</b>中的錯誤

    嵌入式系統中C語言結構體的基礎實現與應用

    C語言中的數組只能允許程序員定義存儲相同類型數據。但是結構C語言編程中允許您存儲不同數據類型的數據。
    發表于 03-12 14:29 ?560次閱讀
    嵌入式系統中<b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>結構</b>體的基礎實現與應用
    百家乐机器昀程序| 博乐百家乐官网游戏| 百家乐官网tt娱乐网| 蓝盾百家乐官网打法| 至尊百家乐官网网| 百家乐官网程序软件| 新百家乐官网.百万筹码| 澳门赌百家乐官网心法| 赌博百家乐官网的乐趣| 百家乐官网国际娱乐场| 钱柜百家乐官网的玩法技巧和规则 | 最好的百家乐官网好评平台都有哪些 | 百家乐官网游戏必赢法| 百家乐官网游戏技巧| 下载百家乐官网棋牌大厅| 百家乐官网网络赌场| 正品百家乐官网的玩法技巧和规则| 百家乐佣金计算| 百家乐水浒传| 二八杠技巧培训| 战神娱乐城| 玩百家乐官网技巧博客| 百家乐官网强弱走势图| 百家乐的必赢术| 百家乐无损打法| 大发888游戏秘籍| 高州市| 百家乐官网1个人| 百家乐必胜下注法| 玩百家乐的玩法技巧和规则| 大发888下载安全的| 偏关县| 百家乐官网博彩的玩法技巧和规则| 百家乐娱乐求指点呀| 全讯网365| 齐齐哈尔市| 网上的百家乐官网是真是假 | 新朝代百家乐开户网站| 大发888娱乐开户| 百家乐官网下注平台| 龙岩棋牌乐|