0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

技術(shù)干貨驛站 ▏深入理解C語言:掌握C語言條件判斷,從if到switch的應(yīng)用

北京合眾恒躍科技有限公司 ? 2024-11-09 01:10 ? 次閱讀

編程中,條件判斷語句是控制程序流程的核心元素之一。它們使得程序能夠根據(jù)不同的輸入和狀態(tài),做出相應(yīng)的決策。特別是在C語言中,條件判斷語句的使用極為廣泛,涵蓋了從簡單的if語句到更復(fù)雜的switch語句和條件運算符。這些結(jié)構(gòu)不僅增強了代碼的靈活性,還提高了程序的可讀性和可維護性。本文將深入探討C語言中的主要條件判斷語句,包括它們的語法、使用方法及實際應(yīng)用,通過具體示例幫助讀者更好地理解和掌握這些重要概念。

01#

一:什么是條件判斷語句

判斷結(jié)構(gòu)要求指定一個或多個要評估或測試的條件,以及條件為真時要執(zhí)行的語句(必需的)和條件為假時要執(zhí)行的語句(可選的)。

C 語言把任何非零和非空的值假定為true,把零或null假定為 false。


以下是C語言的三種條件判斷語句:

5d656ba8-9df4-11ef-8084-92fbcf53809c.png

02#

二:if語句

(1):if語句

一個 if 語句 由一個布爾表達式后跟一個或多個語句組成。

5d732fa4-9df4-11ef-8084-92fbcf53809c.png

如果布爾表達式為 true ,則 if 語句內(nèi)的代碼塊將被執(zhí)行。如果布爾表達式為 false ,則 if 語句結(jié)束后的第一組代碼(閉括號后)將被執(zhí)行

編寫一個簡單的程序:

5d7a59f0-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5d8f4b80-9df4-11ef-8084-92fbcf53809c.png

(2):if...else 語句

一個 if 語句 后可跟一個可選的 else 語句,else 語句在布爾表達式為 false 時執(zhí)行。

5d9bf0f6-9df4-11ef-8084-92fbcf53809c.png

如果布爾表達式為 true,則執(zhí)行 if 塊內(nèi)的代碼。如果布爾表達式為 false,則執(zhí)行 else 塊內(nèi)的代碼。


編寫一個簡單的程序:

5daa37ec-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5dbd990e-9df4-11ef-8084-92fbcf53809c.png

(3)if...else if...else語句

一個 if 語句后可跟一個可選的 else if...else 語句,這可用于測試多種條件。

當(dāng)使用 if...else if...else 語句時,以下幾點需要注意:

l 一個 if 后可跟零個或一個 else,else 必須在所有 else if 之后。

l 一個 if 后可跟零個或多個 else if,else if 必須在 else 之前。

l 一旦某個 else if 匹配成功,其他的 else if 或 else 將不會被執(zhí)行。

編寫一個簡單的程序:

5dc90294-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5ddb4f58-9df4-11ef-8084-92fbcf53809c.png

(4)嵌套 if...else語句

在 C 語言中,嵌套 if...else 語句是合法的,可以在一個 if 或 else if 語句內(nèi)使用另一個 if 或 else if 語句。

編寫一個簡單的程序:

5de5f5ac-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5e00087a-9df4-11ef-8084-92fbcf53809c.png

03#

三:switch語句

(1):switch語句

switch 語句是一種有限制的控制流語句,它用于根據(jù)表達式的值執(zhí)行不同的代碼塊。

一個 switch 語句允許測試一個變量等于多個值時的情況,每個值稱為一個 case,且被測試的變量會對每個 switch case 進行檢查。

5e14802a-9df4-11ef-8084-92fbcf53809c.png

編寫一個簡單的程序:

5e1de94e-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5e2c50a6-9df4-11ef-8084-92fbcf53809c.png

l switch 后面的表達式的值將會與每個 case 后面的常量值進行比較,直到找到匹配的值或者執(zhí)行到 default(如果存在)。

l 如果找到匹配的值,將執(zhí)行相應(yīng) case 后面的代碼塊,然后跳出 switch 語句。

l 如果沒有匹配的值,并且有 default,則執(zhí)行 default 后面的代碼塊。

l 如果沒有匹配的值,并且沒有 default,則跳過整個 switch 語句直到結(jié)束。

(2):嵌套switch語句

可以在一個 switch 語句內(nèi)使用另一個 switch 語句。

編寫一個簡單的程序:

5e412440-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5e4bd98a-9df4-11ef-8084-92fbcf53809c.png


推導(dǎo)一下流程:

l 第6行:開始時n=1,匹配下方case1

l 第8行:m自增1,此時m=3

l 第9行:由于沒有break,繼續(xù)執(zhí)行n自增1,此時n=2

l 第10行:由于沒有break,繼續(xù)執(zhí)行case3

l 第11行:此時匹配n=2

l 第14行:m自增1,n自增1,此時m=4 , n=3

l 第15行:由于存在break,退出該switch語句

l 第19行:m自增1,此時m=5

l 第20行:由于存在break,退出該switch語句

l 最終結(jié)果:m=5 , n=3

04#

四:條件運算符

我們在運算符部分提到了條件運算符 ? :,它是C語言唯一一個三目運算符,可以用來替代 if...else 語句。

其中,condition 、block1 和 block2 是表達式。

如果 condition 為真,則計算 block1 的值,結(jié)果即為整個表達式的值。如果 condition 為假,則計算 block2 的值,結(jié)果即為整個表達式的值。

5e54ec6e-9df4-11ef-8084-92fbcf53809c.png

編寫一個簡單的程序:

5e5d3d4c-9df4-11ef-8084-92fbcf53809c.png

運行結(jié)果為:

5e7057ce-9df4-11ef-8084-92fbcf53809c.png

關(guān)于更多嵌入式學(xué)習(xí)資料

將持續(xù)更新中

敬請期待

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7596

    瀏覽量

    135943
  • 運算符
    +關(guān)注

    關(guān)注

    0

    文章

    171

    瀏覽量

    11052
收藏 人收藏

    評論

    相關(guān)推薦

    C語言中if語句、if-else語句和switch語句詳解

    C語言中,有三種條件判斷結(jié)構(gòu):if語句、if-else語句和switch語句。
    發(fā)表于 08-18 16:36 ?1.1w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中if語句、if-else語句和<b class='flag-5'>switch</b>語句詳解

    技術(shù)干貨驛站深入理解C語言:基本數(shù)據(jù)類型和變量

    C語言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲范圍和操作方式,而變量則是存儲數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量兩個方面,帶你深入
    的頭像 發(fā)表于 07-26 17:53 ?1876次閱讀
    <b class='flag-5'>技術(shù)</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:基本數(shù)據(jù)類型和變量

    技術(shù)干貨驛站深入理解C語言掌握程序結(jié)構(gòu)知識

    的HelloWorld程序開始,讓我們深入探討C語言的程序構(gòu)成和基本語法規(guī)則。一:C語言程序結(jié)構(gòu)先來看一個簡單的HelloWorld程序:一
    的頭像 發(fā)表于 07-27 08:45 ?1167次閱讀
    <b class='flag-5'>技術(shù)</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>掌握</b>程序結(jié)構(gòu)知識

    技術(shù)干貨驛站深入理解C語言掌握常量,讓你的代碼更加穩(wěn)固高效!

    C語言的世界中,常量是一種不可忽視的元素。無論你是在編寫簡單的代碼,還是構(gòu)建復(fù)雜的系統(tǒng),常量都能為你的程序帶來更高的穩(wěn)定性和可靠性。在這篇文章中,我們將深入探討C
    的頭像 發(fā)表于 08-29 13:59 ?2696次閱讀
    <b class='flag-5'>技術(shù)</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:<b class='flag-5'>掌握</b>常量,讓你的代碼更加穩(wěn)固高效!

    深入理解C語言比較有用的幾個資料

    這里有三個對深入理解C語言的資料,覺得不錯,分享一下
    發(fā)表于 08-07 21:37

    51單片機C語言講義(譚浩強)以及深入理解C指針

    本帖最后由 發(fā)燒友之麒麟 于 2014-10-6 09:19 編輯 C語言講義(譚浩強)及深入理解C指針,自己在用的資料,覺得寫得挺好的就拿出來分享,需要的請回[attach]2
    發(fā)表于 10-02 17:05

    C語言有哪些應(yīng)用

    ,WOELD!”,點亮單片機的LED等,大用來進行嵌入式系統(tǒng)開發(fā)、寫操作系統(tǒng)和實現(xiàn)其他高級語言。掌握C語言有助于我們學(xué)習(xí)其他編程
    發(fā)表于 07-20 06:58

    對棧的深入理解

    為什么要深入理解棧?做C語言開發(fā)如果棧設(shè)置不合理或者使用不對,棧就會溢出,溢出就會遇到無法預(yù)測亂飛現(xiàn)象。所以對棧的深入理解是非常重要的。注:動畫如果看不清楚可以電腦看更清晰啥是棧先來看
    發(fā)表于 02-15 07:01

    為什么要深入理解

    [導(dǎo)讀] 從這篇文章開始,將會不定期更新關(guān)于嵌入式C語言編程相關(guān)的個人認(rèn)為比較重要的知識點,或者踩過的坑。為什么要深入理解棧?做C語言開發(fā)如
    發(fā)表于 02-15 06:09

    C++語言基礎(chǔ)講解視頻Switch分支條件判斷語句

    C++語言基礎(chǔ)講解視頻Switch分支條件判斷語句
    發(fā)表于 01-14 08:00 ?7次下載

    深入理解C指針(C/C++程序員進階必備,透徹理解指針與內(nèi)存管理)pdf

    深入理解C指針
    發(fā)表于 03-21 09:42 ?118次下載

    高級語言程序設(shè)計菜鳥大師深入C語言程序設(shè)計PDF電子書免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是高級語言程序設(shè)計菜鳥大師深入C語言程序設(shè)計PDF電子書免費下載。
    發(fā)表于 05-25 16:21 ?174次下載
    高級<b class='flag-5'>語言</b>程序設(shè)計<b class='flag-5'>從</b>菜鳥<b class='flag-5'>到</b>大師<b class='flag-5'>深入</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設(shè)計PDF電子書免費下載

    深入探索Linux中的C語言

    本章將深入探索 Linux 中的 C 語言。在本章中,我們將學(xué)到更多關(guān)于編譯器、源碼二進制程序的 4 個步驟、如何使用 Make 工具以
    的頭像 發(fā)表于 03-14 16:48 ?1612次閱讀

    嵌入式C語言的結(jié)構(gòu)特點

    過程中,不論是基于寄存器開發(fā)還是基于庫開發(fā),深入理解掌握嵌入式C語言的函數(shù)、指針、結(jié)構(gòu)體是學(xué)習(xí)STM32的關(guān)鍵。嵌入式C
    的頭像 發(fā)表于 11-24 16:16 ?628次閱讀
    嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>的結(jié)構(gòu)特點

    技術(shù)干貨驛站深入理解C語言:編程高手必備,全方位解析運算符的核心技能!

    過程中發(fā)揮著重要作用,還對程序的性能和穩(wěn)定性產(chǎn)生直接影響。繼上一期對C語言常量的深入分析后,本文將進一步探討C語言中的常用運算符,詳細(xì)解析其
    的頭像 發(fā)表于 09-18 15:56 ?296次閱讀
    <b class='flag-5'>技術(shù)</b><b class='flag-5'>干貨</b><b class='flag-5'>驛站</b> ▏<b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語言</b>:編程高手必備,全方位解析運算符的核心技能!