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

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

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

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

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

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

01#

一:什么是條件判斷語(yǔ)句

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

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


以下是C語(yǔ)言的三種條件判斷語(yǔ)句:

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

02#

二:if語(yǔ)句

(1):if語(yǔ)句

一個(gè) if 語(yǔ)句 由一個(gè)布爾表達(dá)式后跟一個(gè)或多個(gè)語(yǔ)句組成。

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

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

(2):if...else 語(yǔ)句

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

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

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


編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

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

一個(gè) if 語(yǔ)句后可跟一個(gè)可選的 else if...else 語(yǔ)句,這可用于測(cè)試多種條件。

當(dāng)使用 if...else if...else 語(yǔ)句時(shí),以下幾點(diǎn)需要注意:

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

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

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

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

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

03#

三:switch語(yǔ)句

(1):switch語(yǔ)句

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

一個(gè) switch 語(yǔ)句允許測(cè)試一個(gè)變量等于多個(gè)值時(shí)的情況,每個(gè)值稱為一個(gè) case,且被測(cè)試的變量會(huì)對(duì)每個(gè) switch case 進(jìn)行檢查。

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

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

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

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

l 如果沒(méi)有匹配的值,并且沒(méi)有 default,則跳過(guò)整個(gè) switch 語(yǔ)句直到結(jié)束。

(2):嵌套switch語(yǔ)句

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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


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

l 第6行:開(kāi)始時(shí)n=1,匹配下方case1

l 第8行:m自增1,此時(shí)m=3

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

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

l 第11行:此時(shí)匹配n=2

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

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

l 第19行:m自增1,此時(shí)m=5

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

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

04#

四:條件運(yùn)算符

我們?cè)谶\(yùn)算符部分提到了條件運(yùn)算符 ? :,它是C語(yǔ)言唯一一個(gè)三目運(yùn)算符,可以用來(lái)替代 if...else 語(yǔ)句。

其中,condition 、block1 和 block2 是表達(dá)式。

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

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

編寫一個(gè)簡(jiǎn)單的程序:

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

運(yùn)行結(jié)果為:

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

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

將持續(xù)更新中

敬請(qǐng)期待

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

    關(guān)注

    180

    文章

    7605

    瀏覽量

    136930
  • 運(yùn)算符
    +關(guān)注

    關(guān)注

    0

    文章

    172

    瀏覽量

    11087
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C語(yǔ)言中if語(yǔ)句、if-else語(yǔ)句和switch語(yǔ)句詳解

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

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

    C語(yǔ)言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲(chǔ)范圍和操作方式,而變量則是存儲(chǔ)數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量?jī)蓚€(gè)方面,帶你深入
    的頭像 發(fā)表于 07-26 17:53 ?2149次閱讀
    <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'>語(yǔ)言</b>:基本數(shù)據(jù)類型和變量

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

    的HelloWorld程序開(kāi)始,讓我們深入探討C語(yǔ)言的程序構(gòu)成和基本語(yǔ)法規(guī)則。一:C語(yǔ)言程序結(jié)構(gòu)先來(lái)看一個(gè)簡(jiǎn)單的HelloWorld程序:一
    的頭像 發(fā)表于 07-27 08:45 ?1411次閱讀
    <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'>語(yǔ)言</b>:<b class='flag-5'>掌握</b>程序結(jié)構(gòu)知識(shí)

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

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

    深入理解C語(yǔ)言比較有用的幾個(gè)資料

    這里有三個(gè)對(duì)深入理解C語(yǔ)言的資料,覺(jué)得不錯(cuò),分享一下
    發(fā)表于 08-07 21:37

    51單片機(jī)C語(yǔ)言講義(譚浩強(qiáng))以及深入理解C指針

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

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

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

    對(duì)棧的深入理解

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

    為什么要深入理解

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

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

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

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

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

    深入探索Linux中的C語(yǔ)言

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

    嵌入式C語(yǔ)言的結(jié)構(gòu)特點(diǎn)

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

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

    過(guò)程中發(fā)揮著重要作用,還對(duì)程序的性能和穩(wěn)定性產(chǎn)生直接影響。繼上一期對(duì)C語(yǔ)言常量的深入分析后,本文將進(jìn)一步探討C語(yǔ)言中的常用運(yùn)算符,詳細(xì)解析其
    的頭像 發(fā)表于 09-18 15:56 ?362次閱讀
    <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'>語(yǔ)言</b>:編程高手必備,全方位解析運(yùn)算符的核心技能!

    深入理解C語(yǔ)言:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧

    能讓你的代碼更加簡(jiǎn)潔明了,還能顯著提升程序執(zhí)行效率。本文將詳細(xì)介紹C語(yǔ)言中的三種常見(jiàn)循環(huán)結(jié)構(gòu)——while循環(huán)、for循環(huán)和do...while循環(huán),帶你深入理解
    的頭像 發(fā)表于 12-07 01:11 ?168次閱讀
    <b class='flag-5'>深入理解</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:循環(huán)語(yǔ)句的應(yīng)用與優(yōu)化技巧