04:C語言流程控制

C語言流程控制

  • 1、選擇結構
    • 1.1、第一種:if ...else / if ...else if...else
    • 1.2、第二種:switch case
  • 2、循環結構
    • 2.1、第一種:for循環
    • 2.1、第二種:while循環
    • 2.2、第三種:do...while循環

在C語言程序里,一共有三種程序結構:順序結構、選擇結構(分支結構)、循環結構

1、選擇結構

邏輯上有一種類型,叫bool類型(又寫作boolean類型,中文叫布爾類型)。布爾類型只有兩個值,真和假。

C語言中選擇結構一共有兩種:

1.1、第一種:if …else / if …else if…else

if (bool值)				// 如果bool值為真,則執行代碼段1,否則執行代碼段2
{代碼段1
}
else
{代碼段2
}
***********************************************************************
if (bool值1)				// 如果bool值1為真,則執行代碼段1
{							// 否則則判斷bool值2是否為真,若為真則執行代碼段2代碼段1					// 否則直接執行代碼段3
}
else if (bool值2)			// 開頭的if和結尾的else都只能有一個,但是中間的
{							// else if可以有好多個。代碼段2
}
else
{代碼段3
}

只要執行了其中的一個代碼段就會立馬跳出判斷語句。不再會進行判斷,執行下面的語句

1.2、第二種:switch case

涉及到的C語言關鍵字:switch case break default

switch (變量)				// 執行到這一句時,變量的值已經知道了
{							// switch case語句執行時,會用該變量的值一次與各個
case 常數1:			    	// case后的常數去對比,試圖找到第一個匹配項。代碼段1;			        // 找到匹配的項目后,就去執行該case對應的代碼段break;				    // 如果沒找到則繼續下一個case,直到default。
case 常數2:				    // 如果前面的case都未匹配,則default匹配。代碼段2;break;.....default:代碼段n;break;
}

【注】
1、case中必須是常數,而且必須是整形(不能是float double,可以是int char)
2、一般來說,每個case中代碼段后都必須有一個break;如果沒有,結果可能會讓你大吃一驚
3、case之后一般都會有default。語法上允許沒有default,但是建議寫代碼時一定要寫。

switch case和if else對比:
1、if else適合對比條件比較復雜,但是分支比較少的情況;switch case適合那種對比條件
不復雜,但是分支數很多的情況。
2、所有的選擇結構,其實都可以用if else來實現。但是只有部分才可以用switch case實現。
一般的做法是:在適合使用switch case的情況下會優先使用switch case,如果不適合使用switch case,則不得不使用if else。

代碼示例可以參考郝斌版C語言。

2、循環結構

C語言中常用的循環結構有三個:for循環、while循環、do while循環。

2.1、第一種:for循環

for (循環控制變量初始化; 循環終止條件; 循環控制變量增量)
{ 循環體 
}******************************************
eg:for(i=0;i<=4;i++)
{nihao;
}//循環次數 = 4 - 0 + 1

for循環的執行步驟:
1、先進行循環控制變量初始化
2、執行循環終止條件,如果判斷結果為真,則進入第3步;如果為假則循環終止,退出。
3、執行循環體。
4、執行循環控制變量增量,轉入第2步。
以例子位例:由此可見,i = 0只執行一次,進入循環后,就不在執行i = 0了,執行完循環后i的值位5

int i = 0;                 int i = 0;
for(;i<=4;i++)             for( ;i<=4;)
{						   {			nihao;                     nihao;i++;
}                          }
//這2段代碼和上面的例子代碼等價的

【注】

for(; ;);//此乃死循環

2.1、第二種:while循環

i = 1;
sum = 0;					// 循環初始化
while (i < 100)				// 終止條件
{printf("i = %d.\n", i);sum += i;				// 循環體i += 2;					// 循環控制增量,屬于循環體的一部分
}

while循環的執行步驟:
1、首先是循環初始化。這一部分其實不屬于while循環本身。
2、先判斷終止條件是否滿足。如果是真,則進入第2步;否則直接退出。
3、執行循環體,然后轉入第2步。

while(1);//死循環

2.2、第三種:do…while循環

i = 1; sum = 0;					// 初始化條件
do
{ 	printf("i = %d.\n", i); 	sum += i;i += 2;					// 增量,循環體的一部分
}
while (i < 100);			// 終止條件,記住這里有個;號

do while循環的執行步驟:
1、首先是循環初始化。這一部分其實不屬于do while循環本身。
2、執行循環體(循環控制變量的增量是循環體的一部分)
3、判斷終止條件。若成立,則轉入2;若不成立則退出

while循環和do while循環哪里不同?while循環是先判斷后執行,do while循環是先執行后判斷等循環開始轉了之后,其實是一樣的。do…while循環中循環體一定會執行一次。

代碼示例可以參考郝斌版C語言。

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

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

相關文章

為什么要考數據庫證書?

考取數據庫證書有多方面的理由和好處&#xff0c;這些好處不僅限于個人職業發展&#xff0c;也涉及到提升專業技能、增強競爭力以及獲得行業認可等方面。以下是一些主要的原因&#xff1a; 提升專業技能&#xff1a;數據庫證書考試通常要求考生掌握一定的數據庫理論知識和實踐技…

Java數據結構9-排序

1. 排序的概念及引用 1.1 排序的概念 排序&#xff1a;所謂排序&#xff0c;就是使一串記錄&#xff0c;按照其中的某個或某些關鍵字的大小&#xff0c;遞增或遞減的排列起來的操作。 穩定性&#xff1a;假定在待排序的記錄序列中&#xff0c;存在多個具有相同的關鍵字的記錄…

【vuejs】vue-router多層級路由配置以及頁面嵌套的處理

1. 多層級頁面嵌套概念 1.1 什么是多層級頁面嵌套 多層級頁面嵌套指的是在單頁面應用&#xff08;SPA&#xff09;中&#xff0c;頁面結構由多個嵌套的組件組成&#xff0c;每個組件可能代表不同的頁面或頁面區域。這種結構允許開發者將應用組織成多個模塊&#xff0c;每個模…

認證資訊|Bluetooth SIG認證

在當今高度互聯的世界中&#xff0c;無線技術的普及已經成為我們生活和工作中不可或缺的一部分。作為領先的無線通信技術之一&#xff0c;Bluetooth技術以其穩定性、便捷性和廣泛的應用場景而備受青睞。然而&#xff0c;要想在激烈的市場競爭中脫穎而出&#xff0c;獲得Bluetoo…

6、Redis系統-數據結構-04-Hash

四、哈希表&#xff08;Hashtable&#xff09; 哈希表是一種高效的鍵值對數據結構&#xff0c;通過散列函數將鍵映射到表中的位置&#xff0c;實現快速的插入、刪除和查找操作。Redis 廣泛使用哈希表來實現 Hash 對象和數據庫的鍵值存儲。以下將從結構設計、哈希沖突與鏈式哈希…

深入源碼,探究#、$號替換符的區別

在Mybatis的日常使用過程中以及在一些技術論壇上我們都能常常聽到&#xff0c;不要使用$符號來進行SQL的編寫&#xff0c;要使用#符號&#xff0c;否則會有SQL注入的風險。那么&#xff0c;為什么在使用$符號時會有注入的風險呢&#xff0c;以及#號為什么不會有風險呢&#xff…

C/C+++服務器之libuv的使用實戰

libuv libuv簡介 1: 開源跨平臺的異步IO庫, 主要功能有網絡異步&#xff0c;文件異步等。 2: libuv主頁: http://libuv.org/ 3: libuv是node.js的底層庫; 4: libuv的事件循環模型: epoll, kqueue, IOCP, event ports; 異步 TCP 與 UDP sockets; DNS 解析 異步文件讀寫; 信號處…

Python結合MobileNetV2:圖像識別分類系統實戰

一、目錄 算法模型介紹模型使用訓練模型評估項目擴展 二、算法模型介紹 圖像識別是計算機視覺領域的重要研究方向&#xff0c;它在人臉識別、物體檢測、圖像分類等領域有著廣泛的應用。隨著移動設備的普及和計算資源的限制&#xff0c;設計高效的圖像識別算法變得尤為重要。…

設計模式-結構型-08-組合模式

文章目錄 1、學校院系展示需求2、組合模式基本介紹3、組合模式示例3.1、 解決學校院系展示&#xff08;透明模式1&#xff09;3.2、高考的科目&#xff08;透明模式2&#xff09;3.3、高考的科目&#xff08;安全組合模式&#xff09; 4、JDK 源碼分析5、注意事項和細節 1、學校…

存儲過程編程-創建(CREATE PROCEDURE)、執行(EXEC)、刪除(DROP PROCEDURE)

一、定義 1、存儲過程是在SQL服務器上存儲的已經編譯過的SQL語句組。 2、存儲過程分為三類&#xff1a;系統提供的存儲過程、用戶定義的存儲過程和擴展存儲過程 &#xff08;1&#xff09;系統提供的存儲過程&#xff1a;在安裝SQL Server時&#xff0c;系統創建了很多系統存…

AI機器人在企業拓客上常見的功能有哪些

AI機器人具備多種功能&#xff0c;這些功能主要基于其被設計和訓練的目的。整理了一些常見的AI機器人功能&#xff1a; 1. 語音識別與自然語言處理&#xff1a; - 語音識別&#xff1a;將用戶的語音輸入轉換為文本&#xff0c;以便機器人可以理解和處理。 - 自然語言處理…

QCC5181 歌詞歌曲名多國語言顯示替代QCC5125 CSR8675

QCC518X作為Qualcomm新一代藍牙技術芯片&#xff0c;支持最新藍牙協議V5.4&#xff0c;較QCC512X系列&#xff0c;它有更強大的DSP、CPU。除支持USB、I2S、SPDIF等接口外&#xff0c;還擴展了LE Audio功能&#xff0c;擴展支持AptX Lossless。以5181為例&#xff0c;我們還擴展…

vscode語言模式

1.背景 寫vue3ts項目的時候&#xff0c;用到了volar插件&#xff0c;在單文件使用的時候&#xff0c;鼠標懸浮在代碼上面會有智能提示&#xff1b; 但是最近volar插件提示被棄用了&#xff0c;然后我按照它的官方提示&#xff0c;安裝了Vue-official擴展插件&#xff0c;但是…

Banana Pi BPI-M5 Pro 低調 SBC 采用 Rockchip RK3576 八核 Cortex-A72/A53 AIoT SoC

Banana Pi BPI-M5 Pro&#xff0c;也稱為 Armsom Sige5&#xff0c;是一款面向 AIoT 市場的低調單板計算機 (SBC)&#xff0c;由 Rockchip RK3576 八核 Cortex-A72/A53 SoC 驅動&#xff0c;提供Rockchip RK3588和RK3399 SoC 之間的中檔產品。 該主板默認配備 16GB LPDDR4X 和…

如何大幅減少 Vue.js 中的包大小和加載時間,提升用戶體驗!

大家好,我是CodeQi! 一位熱衷于技術分享的碼仔。 你知道嗎,根據Google 的一項研究,如果網站加載時間超過 3 秒,53% 的移動用戶會離開該網站? 性能優化是一個經常討論的話題,但很多開發人員并不關心提高應用的速度。 在前端開發中,優化包大小和加載時間對于提升用戶體…

下一代 CLI 工具,使用Go語言用于構建令人驚嘆的網絡應用程序

大家好&#xff0c;今天給大家分享一個創新的命令行工具Gowebly CLI&#xff0c;它專注于使用Go語言來快速構建現代Web應用程序。 Gowebly CLI 是一款免費開源軟件&#xff0c;有助于在后端使用 Go、在前端使用 htmx 和 hyperscript 以及最流行的 CSS 框架輕松構建令人驚嘆的 W…

入門PHP就來我這(高級)15 ~ 圖書刪除功能

有膽量你就來跟著路老師卷起來&#xff01; -- 純干貨&#xff0c;技術知識分享 路老師給大家分享PHP語言的知識了&#xff0c;旨在想讓大家入門PHP&#xff0c;并深入了解PHP語言。 今天給大家接著上篇文章實現圖書刪除功能&#xff0c;來實現刪除圖書信息記錄行的功能。 1 刪…

高顏值官網(3):家居用品網站12個,好的創意都在這里。

hello&#xff0c;大家好&#xff0c;我是大千UI工場&#xff0c;本文為大家帶來家居用品網站UI&#xff0c;供大家欣賞。

項目代碼優化(1)——下單邏輯

給一個電商開發的系統排查&#xff0c;發現漏洞很多。很多經驗不夠的開發者很容易忽視的邏輯錯誤陷阱。在給一個項目做二次開發時候&#xff0c;檢測到的相關經典案例。這里整理支付和產品相關的邏輯&#xff0c;方便后續查看。&#xff0c;這里進行一些簡單的邏輯漏洞梳理與修…

Ubuntu 22.04 LTS 上安裝 MySQL8.0.23(在線安裝)

目錄 在線安裝MySQL 步驟1&#xff1a;更新軟件包列表 步驟2&#xff1a;安裝MySQL服務器 步驟3&#xff1a;啟動MySQL服務 步驟4&#xff1a;檢查MySQL狀態 步驟5&#xff1a;修改密碼、權限 在線安裝MySQL 步驟1&#xff1a;更新軟件包列表 在進行任何軟件安裝之前&a…