收集飛花令碎片——C語言分支與循環語句(上)

前言

Hello,各位碼友,本章將會給大家帶來C語言的分支與循環整章串講,這一張的內容分為基礎知識程序練習兩個部分
希望通過這一章能夠帶大家更好地去掌握C語言的分支與循環語句


大家一起努力吧



C語言分支與循環語句(基礎知識)

  • C語言語句的分類
  • 一、分支語句
    • (1)if語句
    • (2)if-else 語句
    • (3)if-else if-else 鏈
      • 流程圖演示
    • 注意:懸空else問題
    • (4)switch 語句
  • 二、循環語句
    • (1)while 循環
    • 流程圖演示
    • (2)do-while 循環
    • 流程圖演示
    • (3)for 循環
    • 流程圖演示
  • 三、嵌套循環
  • 拓展:輔助控制語句
    • (1)break
    • 流程圖演示
    • (2)continue
    • 流程圖演示
    • (3)goto
  • 這一章的C語言分支與循環結構的基礎知識已經全部講完了,下一章會利用幾道程序設計題目讓大家更好地掌握分支循環語句


C語言語句的分類

(1)表達式語句(例如 y=x+3;假設變量y和x均已定義)

(2)函數調用語句(MAX(x,y);假設函數MAX()已經定義)

(3)控制語句

(4)復合語句(把多種語句復合在一起形成的語句)

(5)空語句(例如 ;分號本身就可以作為一條語句,稱為空語句,至于空語句的作用,后續會講到 )

無論上述哪一種語句,都必須以分號結束!

一、分支語句

(1)if語句

作用: 基礎條件判斷

if (條件) {// 條件為真時執行
}


(2)if-else 語句

作用: 二選一分支。

if (條件) {// 條件為真時執行
} else {// 條件為假時執行
}


(3)if-else if-else 鏈

作用: 多條件分支。

if (條件1) {// 條件1為真時執行
} else if (條件2) {// 條件2為真時執行
} else {// 其他情況
}


流程圖演示

開始
條件
執行if代碼塊
執行else代碼塊
結束

注意:懸空else問題

如果有多個ifelse,可以記住這樣一條規則,else總是跟最近的if匹配

我們首先從最下面的代碼開始

include <stdio.h>
int main(){int a = 0;int b = 2;if(a = 1)if(b = 2)printf("hehe\n");elseprintf("haha\n");return 0;
}

最后你會發現,運行代碼啥都不輸出
這就是懸空else的問題,就是else總是跟最近的if匹配


(4)switch 語句

作用: 多路選擇,基于整型或枚舉值。

switch (表達式) {case1:// 匹配值1時執行break;case2:// 匹配值2時執行break;default:// 默認情況 或者 剩余情況
}


二、循環語句

(1)while 循環

作用: 先判斷條件,后執行循環體。

while (條件) {// 條件為真時重復執行
}

流程圖演示

開始
循環條件
執行循環體
遇到continue?
遇到break?
退出循環
結束


(2)do-while 循環

作用: 先執行一次循環體,再判斷條件(至少執行一次)。

do {// 循環體
} while (條件);

流程圖演示

開始
執行循環體
循環條件
遇到continue?
遇到break?
退出循環
結束


(3)for 循環

集初始化、條件判斷、迭代于一行。

for (初始化; 條件; 迭代) {// 循環體
}

代碼示例:

for (int i = 0; i < 10; i++) {printf("%d\n", i);}

流程圖演示

開始
初始化
循環條件
執行循環體
遇到continue?
執行迭代語句
遇到break?
退出循環
結束


三、嵌套循環

循環內包含其他循環(任意組合 for、while、do-while)。

for (int i = 0; i < 3; i++) {while (j < 2) {// 嵌套邏輯j++;}
}

利用嵌套循環可以打印出不同樣式的九九乘法表,在程序練習那一章會講解


拓展:輔助控制語句

作用: 與分支和循環配合使用的跳轉語句:

(1)break

作用: 立即退出當前循環或 switch 語句。

while (1) {if (x == 5) break; // 退出循環
}

流程圖演示

while/do-while
for
循環體內部
遇到continue
跳過剩余代碼
循環類型
回到條件判斷
執行迭代語句后判斷條件


(2)continue

作用: 跳過當前循環的剩余部分,進入下一次迭代。


注意:

  • 只能在 for、while、do-while 循環內部使用。

  • 不可在 switch 或非循環代碼塊中直接使用(除非 switch 嵌套在循環內)。

for (int i = 0; i < 10; i++) {if (i % 2 == 0) continue; // 跳過偶數printf("%d ", i); // 僅打印奇數
}

流程圖演示

while/do-while
for
循環體內部
遇到continue
跳過剩余代碼
循環類型
回到條件判斷
執行迭代語句后判斷條件


(3)goto

作用: 跳轉到指定標簽(慎用,易破壞代碼結構)。

goto label;
// ... 
label:printf("跳轉至此");


這一章的C語言分支與循環結構的基礎知識已經全部講完了,下一章會利用幾道程序設計題目讓大家更好地掌握分支循環語句

如果你覺得這篇文章對你有幫助,請給小編一個三連支持一下嘻嘻嘻

在這里插入圖片描述

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

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

相關文章

嵌入式硬件篇---TOF|PID

文章目錄 前言1. 硬件準備主控芯片ToF模塊1.VL53L0X2.TFmini 執行機構&#xff1a;電機舵機其他 2. 硬件連接(1) VL53L0X&#xff08;IC接口&#xff09;(2) TFmini&#xff08;串口通信&#xff09; 3. ToF模塊初始化與數據讀取(1) VL53L0X&#xff08;基于HAL庫&#xff09;(…

PCB設計實踐(十二)PCB設計電容選型:功能、材質、規則

在PCB設計中&#xff0c;電容作為基礎元件承擔著濾波、儲能、去耦、耦合等核心功能。其分類與使用規則直接影響電路穩定性、抗干擾能力和信號完整性。本文從工程實踐角度系統梳理PCB設計中電容的五大分類、選型規范及布局布線規則&#xff0c;幫助設計者構建科學的電容應用體系…

vue2關閉eslint

在項目根目錄下找到 vue.config.js 文件。如果沒有該文件&#xff0c;可以直接在項目根目錄創建一個。 2. 添加 lintOnSave: false 配置 module.exports {lintOnSave: false };

MyBatis 一對多關聯映射在Spring Boot中的XML配置

在Spring Boot中使用MyBatis實現一對多關系時&#xff0c;可以通過XML映射文件來配置。下面我將詳細介紹幾種實現方式。 基本概念 一對多關系指的是一個實體對象包含多個子對象集合的情況&#xff0c;例如&#xff1a; 一個部門有多個員工一個訂單有多個訂單項一個博客有多個…

基于Stable Diffusion XL模型進行文本生成圖像的訓練

基于Stable Diffusion XL模型進行文本生成圖像的訓練 flyfish export MODEL_NAME"stabilityai/stable-diffusion-xl-base-1.0" export VAE_NAME"madebyollin/sdxl-vae-fp16-fix" export DATASET_NAME"lambdalabs/naruto-blip-captions"acceler…

基于React的高德地圖api教程001:初始化地圖

文章目錄 1、初始化地圖1.1 創建react項目1.2 可視化地圖1.3 設置衛星地圖1.4 添加開關開啟3D地圖1.5 代碼下載1、初始化地圖 1.1 創建react項目 創建geodeapi項目: npx create-react-app gaodeapi安裝高德地圖包: npm install @amap/amap-jsapi-loader1.2 可視化地圖 在…

uniapp使用npm下載

uniapp的項目在使用HBuilder X創建時是不會有node_modules文件夾的&#xff0c;如下圖所示&#xff1a; 但是uni-app不管基于哪個框架&#xff0c;它內部一定是有node.js的&#xff0c;否則沒有辦法去實現框架層面的一些東西&#xff0c;只是說它略微有點差異。具體差異表現在…

輕量在線工具箱系統源碼 附教程

源碼介紹 輕量在線工具箱系統源碼,直接扔服務器 修改config/config.php文件里面的數據庫 后臺賬號admin 密碼admin123 本工具是AI寫的 所以工具均是第三方接口直接寫的。 需要加工具直接自己找接口寫好扔到goju目錄 后臺自動讀取 效果預覽 源碼獲取 輕量在線工具箱系統源…

圖解gpt之Seq2Seq架構與序列到序列模型

今天深入探討如何構建更強大的序列到序列模型&#xff0c;特別是Seq2Seq架構。序列到序列模型&#xff0c;顧名思義&#xff0c;它的核心任務就是將一個序列映射到另一個序列。這個序列可以是文本&#xff0c;也可以是其他符號序列。最早&#xff0c;人們嘗試用一個單一的RNN來…

mac M2能安裝的虛擬機和linux系統系統

能適配MAC M2芯片的虛擬機下Linux系統的搭建全是深坑&#xff0c;目前網上的資料能搜到的都是錯誤的&#xff0c;自己整理并分享給坑友們~ 網上搜索到的推薦安裝的改造過的centos7也無法進行yum操作&#xff0c;我這邊建議安裝centos8 VMware Fusion下載地址&#xff1a; htt…

「國產嵌入式仿真平臺:高精度虛實融合如何終結Proteus時代?」——從教學實驗到低空經濟,揭秘新一代AI賦能的產業級教學工具

引言&#xff1a;從Proteus到國產平臺的范式革新 在高校嵌入式實驗教學中&#xff0c;仿真工具的選擇直接影響學生的工程能力培養與創新思維發展。長期以來&#xff0c;Proteus作為經典工具占據主導地位&#xff0c;但其設計理念已難以滿足現代復雜系統教學與國產化技術需求。…

【Linux】在Arm服務器源碼編譯onnxruntime-gpu的whl

服務器信息&#xff1a; aarch64架構 ubuntu20.04 nvidia T4卡 編譯onnxruntime-gpu前置條件&#xff1a; 已經安裝合適的cuda已經安裝合適的cudnn已經安裝合適的cmake 源碼編譯onnxruntime-gpu的步驟 1. 下載源碼 git clone --recursive https://github.com/microsoft/o…

前端上傳el-upload、原生input本地文件pdf格式(純前端預覽本地文件不走后端接口)

前端實現本地文件上傳與預覽&#xff08;PDF格式展示&#xff09;不走后端接口 實現步驟 第一步&#xff1a;文件選擇 使用前端原生input上傳本地文件&#xff0c;或者是el-upload組件實現文件選擇功能&#xff0c;核心在于文件渲染處理。&#xff08;input只不過可以自定義樣…

Python 數據分析與可視化:開啟數據洞察之旅(5/10)

一、Python 數據分析與可視化簡介 在當今數字化時代&#xff0c;數據就像一座蘊藏無限價值的寶藏&#xff0c;等待著我們去挖掘和探索。而 Python&#xff0c;作為數據科學領域的明星語言&#xff0c;憑借其豐富的庫和強大的功能&#xff0c;成為了開啟這座寶藏的關鍵鑰匙&…

C語言學習記錄——深入理解指針(4)

OK&#xff0c;這一篇主要是講我學習的3種指針類型。 正文開始&#xff1a; 一.字符指針 所謂字符指針&#xff0c;顧名思義就是指向字符的指針。一般寫作 " char* " 直接來說說它的使用方法吧&#xff1a; &#xff08;1&#xff09;一般使用情況&#xff1a; i…

springboot3+vue3融合項目實戰-大事件文章管理系統獲取用戶詳細信息-ThreadLocal優化

一句話本質 為每個線程創建獨立的變量副本&#xff0c;實現多線程環境下數據的安全隔離&#xff08;線程操作自己的副本&#xff0c;互不影響&#xff09;。 關鍵解讀&#xff1a; 核心機制 ? 同一個 ThreadLocal 對象&#xff08;如示意圖中的紅色區域 tl&#xff09;被多個線…

Nacos源碼—8.Nacos升級gRPC分析六

大綱 7.服務端對服務實例進行健康檢查 8.服務下線如何注銷注冊表和客戶端等信息 9.事件驅動架構源碼分析 一.處理ClientChangedEvent事件 也就是同步數據到集群節點&#xff1a; public class DistroClientDataProcessor extends SmartSubscriber implements DistroDataSt…

設計雜談-工廠模式

“工廠”模式在各種框架中非常常見&#xff0c;包括 MyBatis&#xff0c;它是一種創建對象的設計模式。使用工廠模式有很多好處&#xff0c;尤其是在復雜的框架中&#xff0c;它可以帶來更好的靈活性、可維護性和可配置性。 讓我們以 MyBatis 為例&#xff0c;來理解工廠模式及…

AI與IoT攜手,精準農業未來已來

AIoT&#xff1a;農業領域的變革先鋒 在科技飛速發展的當下&#xff0c;人工智能&#xff08;AI&#xff09;與物聯網&#xff08;IoT&#xff09;的融合 ——AIoT&#xff0c;正逐漸成為推動各行業變革的關鍵力量&#xff0c;農業領域也不例外。AIoT 技術通過將 AI 的智能分析…

排錯-harbor-db容器異常重啟

排錯-harbor-db容器異常重啟 環境&#xff1a; docker 19.03 , harbor-db(postgresql) goharbor/harbor-db:v2.5.6 現象&#xff1a; harbor-db 容器一直restart&#xff0c;查看日志發現 報錯 initdb: error: directory "/var/lib/postgresql/data/pg13" exists…