【C語言】分支和循環

目錄

前置:關系操作符和邏輯操作符

關系操作符

邏輯操作符

其他補充知識

分支語句:

一、if類

基本式:if...

變式1:if...else...

變式2:if...else if...else...

變式3:嵌套

二、switch

?循環語句:

一、while

二、for

三、do...while

四、提前離開循環


前置:關系操作符和邏輯操作符

關系操作符

C語言中用于判斷兩個事件之間的關系的操作符主要有六個

  • <? ? ? ? 小于
  • >? ? ? ? 大于
  • <=? ? ? 小于等于
  • >=? ? ? 大于等于
  • ==? ? ? 等于
  • !=? ? ? ?不等于

需要注意的是 “==” 才是用來判斷是否相等的符號, “=”? 表示的是賦值的運算

上述六個操作符當判斷的結果成立,即結果為真時會返回1,否則返回0

邏輯操作符

C語言中用于邏輯判斷主要有三個

  • &&? ? ? ? 與
  • ||? ? ? ? ? ?或
  • !? ? ? ? ?非

與(&&):當符號兩邊同時為真時總結果才為真

(a > 0) && ( b > 0)

當a大于0,并且b也大于0時總結果才為真

或(||):當符號兩邊有任意一個為真時總結果就可以為真

(a > 0) ||?( b > 0)

當a大于0,或者b大于0時總結果就是真

非(!):改變單個條件的真假,如果是真就變成假,如果是假就變成真

a = 0;

b = !a;

因為a等于0,所以!a等于1,所以b等于1

其他補充知識

C語言邏輯運算符還有?個特點,它總是先對左側的表達式求值,再對右邊的表達式求值,這個順序是保證的。如果左邊的表達式滿足邏輯運算符的條件,就不再對右邊的表達式求值。這種情況稱為“短路”。

分支語句:

一、if類

if在英語語境里就有“如果”的意思,可以用它來判斷選擇程序的執行路徑,其具體使用為

基本式:if...

if( 判斷的條件結果為真 )
{執行的操作...
}

當判斷的條件結果為真,即結果非0時就會進入大括號內執行代碼,否則就會跳過大括號內的代碼往下執行

變式1:if...else...

if( 判斷的條件不等于0 )
{執行的操作...
}
else
{執行的操作...
}

if和else可以看做將全集分成兩份互斥的事件,當if內的條件不成立時必然會執行else內的代碼

變式2:if...else if...else...

if( 判斷的條件不等于0 )
{執行的操作...
}
else if( 判斷的條件不等于0 )
{執行的操作...
}
else
{執行的操作...
}

else if 相當于把全集再添加一個事件,這個事件同樣與另外兩個事件互斥,可以添加多個else if來繼續在全集內添加與其他事件互斥事件

變式3:嵌套

if( 判斷的條件結果為真 )
{if( 判斷的條件結果為真 ){執行的操作...}else{執行的操作...}
}
else
{if( 判斷的條件結果為真 ){執行的操作...    }else{執行的操作...}
}

if類可以存在嵌套,當沒有大括號時,else總是和最近的前一個if作為一體

二、switch

switch在英語語境里就有“選擇”的意思,也可以用它來判斷選擇程序的執行路徑

它和if...else if...else功能一樣,不過把多重的 else if 改成更易用、可讀性更好的形式。

switch( 用于作為路徑選擇的參數 )
{case 得到的參數是變量1:執行的操作...break;case 得到的參數是變量2:執行的操作...break;...default:執行的操作...
}

上述偽代碼通過判斷用于作為路徑選擇的變量的不同值執行相應的case里的代碼,當所有的case都不滿足時則執行default里的內容

注:

  • switch 后的 用于作為路徑選擇的變量 必須是整型表達式
  • case 后的值,必須是整形常量表達式
  • 每一個 case 語句中的代碼執行完成后,需要加上 break ,才能跳出這個switch語句。如果某一個 case 語句的后邊沒有 break 語句,代碼會繼續玩下執行,有可能執行其他 case 語句中的代碼,直到遇到 break 語句或者 switch 語句結束。

?循環語句:

一、while

while語句是一個簡單的循環語句,當判斷的條件結果為真時就進入while語句內執行響應的操作,當執行到大括號內最后一條代碼時返回最開始的條件判斷,如果判斷的條件仍然為真就再次進入while語句內執行響應的操作,如此反復執行直到判斷的條件結果為假時才跳出循環

while( 判斷的條件結果為真 )
{執行的操作...
}

二、for

for循環語句也是C語言中的常見循環語句,其語法結構為

for( 循環變量初始化; 循環結束條件; 每執行完一次for循環循環變量的調整 )
{執行的操作...
}

整個循環的過程中,循環變量初始化部分只被執行1次,其他兩個參數會被反復執行。三個參數并不是一定都要使用的,可以空著不寫,例如當循環結束的條件為空時表示該循環為死循環。

三、do...while

while 和 for 這兩種循環都是先判斷,條件如果滿足就進入循環,執行循環語句,如果不滿足就跳 出循環; 而?do...while 循環則是先直接進入循環體,執行循環語句,然后再執行?while 后的判斷表達式,表達式為真,就會進行下一次,表達式為假,則不再繼續循環。所以在 do...while 語句中循環體是至少執行一次的,這是 do...while 循環比較特殊的地方。其語法結構為

do
{執行的操作...
}while( 判斷的條件結果為真 )

四、提前離開循環

1.break

執行break語句可以做到終止該語句所在的循環

2.continue

執行continue語句可以做到跳過本次循環中continue之后的語句,直接開始執行下一次的循環

3.return

對于有返回值的函數,執行return語句可以做到終止該語句所在的函數,直接返回函數值

4.goto

使用goto語句可以使程序跳到任意你想讓它跳轉執行的位置,但是不建議使用goto,因為 goto 語句如果使用的不當,就會導致在函數內部隨意亂跳轉,打亂程序的執行流程,所以建議是能不用盡量不去使用;但是 goto 語句也不是一無是處,在多層循環的代碼中,如果想快速跳出使用?goto 就非常的方便了。

int main()
{int i = 0;for( i = 0; i < 100; i++ ){執行的操作...要去的地方:{執行的操作...}        if( i == 50){goto 要去的地方:}執行的操作...}
}注意:“要去的地方”在實際使用時根據自己的需要起名字

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96960.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96960.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96960.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

商超客流密度統計誤差率↓35%!陌訊多模態融合算法在零售智慧運營的實戰解析

原創聲明 本文為原創技術解析文章&#xff0c;核心技術參數與架構設計引用自 “陌訊技術白皮書&#xff08;2024 版&#xff09;”&#xff0c;技術描述均經過重寫轉換&#xff0c;無復制官網文案情況&#xff0c;僅用于計算機視覺技術交流與實戰經驗分享。 一、零售客流統計的…

游戲空間劃分技術

【前言】 空間劃分主要是為了降低搜索比較量&#xff0c;如果不采用空間劃分&#xff0c;暴力遍歷也是可以求解的&#xff0c;但耗時過長。通過空間劃分將全局搜索簡化為為局部搜索&#xff0c;大大降低搜索量。 搜索出來后最終還要是一一比較&#xff0c;比較的是距離&#…

【C#】觀察者模式 + UI 線程調度、委托講解

“觀察者模式 UI 線程調度”的典型應用A. 涉及的知識點&#xff08;抽象&#xff09;觀察者模式&#xff08;Observer Pattern&#xff09; 發布者&#xff1a;DemoDeviceService.cs 內部生成一幀數據 ScopeFrame&#xff0c;通過 OnScopeFrame?.Invoke(frame) 發布事件。訂閱…

Linux應用軟件編程---網絡編程(TCP:[ 其他機制、頭部標志位、應用示例 ]、 HTTP:[ 萬維網、概念、格式、報文、應用示例 ]

一、TCP 網絡協議補充內容1、TCP 的其他機制1&#xff09;TCP 頭部的標志位TCP 頭部可用抓包工具 (wireshark) 來查看。頭部標志位用途SYN請求建立連接標志位ACK響應報文標志位PSH攜帶數據標志位&#xff0c;通知接收方該從緩沖區讀數據FIN請求斷開連接標志位RST復位標志位URG緊…

基于開源飛控pix的無人機裝調與測試

文章目錄 前言資源下載1、地面站軟件獨家漢化版QGC地面站&#xff08;推薦&#xff09;原版QGC地面站Mission Planner地面站 2、安裝好環境的虛擬機安裝虛擬機打開虛擬機文件 3、完整的各版本PX4、QGC源碼PX4QGC 一、無人機基本常識/預備知識&#xff08;1&#xff09;無人機飛…

Ubuntu解決makefile交叉編譯的問題

問題1&#xff1a;/usr/lib/gcc-cross/aarch64-linux-gnu/11/../../../../aarch64-linux-gnu/bin/ld: cannot find -lwiringpi: No such file or directory 找不到-lwiringpi庫路徑&#xff0c;其實在3rd/usr/lib/aarch64-linux-gnu下沒有libwiringPi.so.2 …

ExcelUtils實現 設置內容 插入行 復制行列格式

ExcelUtils實現&#xff1a;1.實現輸入 例如 2 A 的excel格式&#xff0c;自動填充對應excel單元格&#xff1b;2.實現復制并新增下一行&#xff1b;3.實現控制復制上一行相同列的格式&#xff1b;4.實現控制復制同一行上一列的格式&#xff1b;/*** 在指定行下方插入新行并復…

SQLBot 智能問數、數據洞察邏輯拆解

* 基于 SQLBot v1.0.2* 使用 AI Gateway 抓取模型調用記錄SQLBot 通過融入 LLM 能力實現了非常優秀的問數體驗&#xff0c;這里記錄一下產品中如何引入 AI 能力&#xff0c;順便探究一下調用大模型的數據安全的問題&#xff08;是否會向模型提供真實數據&#xff09;。結論&…

實現統一門戶登錄跳轉免登錄

統一門戶所有應用頁面&#xff0c;點擊跳轉對應業務系統&#xff0c;實現業務系統免登錄//獲取所有業務系統項&#xff08;獲取并存儲到倉庫) //用于頁面展示 let appSubjectVoList ref<any>([]) appSubjectVoList.value userStore.getAppSubjectVoList || [] //登陸后…

卓伊凡的開源戰略與PHP-SG16加密技術深度解析-sg加密技術詳解-卓伊凡

卓伊凡的開源戰略與PHP-SG16加密技術深度解析-sg加密技術詳解-卓伊凡引言&#xff1a;在理想與現實間尋求平衡的開源之路近日&#xff0c;技術創業者卓伊凡先生宣布了一項重大決策&#xff1a;將于明日將其公司旗下的優雅草商城、項目管理系統等眾多成熟商業產品正式開源。這一…

回溯 算法常見面試問題

1. 全排列(無重復元素) 核心思想:交換法避免額外空間 def permute(nums):def backtrack(first=0):if first == len(nums):res.append(nums.copy())returnfor i in range(first, len(nums)):nums[first], nums[i] = nums[i], nums[first]backtrack(first + 1)nums[first], …

營銷專業人員核心能力構建與發展路徑

CDA數據分析師證書含金量高&#xff0c;適應了未來數字化經濟和AI發展趨勢&#xff0c;難度不高&#xff0c;行業認可度高&#xff0c;對于找工作很有幫助。一、營銷人員五維能力模型能力維度核心技能要素工具與方法論產出成果數據驅動決策指標監控、歸因分析、效果優化Google …

Android系統學習2——Android.Utils.Log模塊討論

Android系統學習2——Android.Utils.Log模塊討論 ? 打日志是一個很好的習慣&#xff0c;有的時候我們可以通過這里排查我們的程序的問題。在這里&#xff0c;我們可以從Android的日志機制入手討論我們的Log模塊。 android.util.Log 類的作用 Android 中最常用的日志工具是 and…

使用 YAML 文件,如何優雅地刪除 k8s 資源?

在 Kubernetes 中&#xff0c;刪除資源是日常運維中不可避免的操作。如果你習慣了使用 kubectl create 和 kubectl apply 來創建和更新資源&#xff0c;那么你可能也會想知道如何用同樣基于文件的方式來刪除它們。 雖然你總是可以用 kubectl delete deployment <name> 這…

如何將游戲和軟件移動到另一個驅動器或外部磁盤中

您的C盤存儲空間是否不足&#xff0c;或者您不小心在錯誤的驅動器中安裝了游戲或應用程序。那么使用這個簡單的技巧&#xff0c;您可以輕松的將游戲或應用程序移動到另一個分區或磁盤中。1、找到準備移動的軟件&#xff0c;選擇路徑并復制&#xff1a;2、打開記事本&#xff0c…

賦能汽車電子智造:全星QMS打造品質檢驗、稽核與客訴管理閉環?——全星質量管理軟件系統

全星QMS&#xff1a;驅動汽車電子質量卓越與商業成功的核心引擎 在智能汽車時代&#xff0c;汽車電子的質量已成為產品安全、性能與品牌信譽的核心。面對復雜的供應鏈、嚴苛的IATF 16949/ISO 26262標準及降本增效的壓力&#xff0c;您的企業需要一位數字化戰略伙伴。全星質量管…

【數據結構C語言】順序表

1. 線性表 線性表&#xff08;linear list&#xff09;是n個具有相同特性的數據元素的有限序列。 線性表是一種在實際中廣泛使用的數據結構&#xff0c;常見的線性表&#xff1a;順序表、鏈表、棧、隊列、字符串...線性表在邏輯上是線性結構&#xff0c;也就說是連續的一條直線…

AI 學習路徑-記錄分享

目錄推薦學習資源延申閱讀推薦學習資源 3Blue1Brown的個人空間-3Blue1Brown個人主頁-嗶哩嗶哩視頻 這個簡短的課程有助于了解AI的本質&#xff0c;邁入學習AI的第一步。 歡迎加入 &#x1f917; AI Agents 課程 - Hugging Face Agents Course AI Agent&#xff0c;當前火爆…

Windows Server 2019 上安裝 Ubuntu 20.04 的幾種方式

docker desktop不支持Windows server 2019&#xff0c;所以Windows Server 2019 上安裝 Ubuntu 20.04 變成一種可行的途徑。記錄一下其中可用的幾種方式&#xff1a;&#x1f5c2; 常見安裝方式對比方式原理難度適用場景優點缺點Hyper?V 虛擬機&#xff08;推薦&#xff09;利…

當Trae遇上高德MCP:一次國慶武漢之旅的AI技術實踐

當Trae遇上高德MCP&#xff1a;一次國慶武漢之旅的AI技術實踐 &#x1f31f; Hello&#xff0c;我是摘星&#xff01; &#x1f308; 在彩虹般絢爛的技術棧中&#xff0c;我是那個永不停歇的色彩收集者。 &#x1f98b; 每一個優化都是我培育的花朵&#xff0c;每一個特性都是我…