C語言的控制語句

C的控制語句

控制語句是C語言中用于控制程序執行流程的結構。通過控制語句,可以根據條件執行不同的代碼塊,或者重復執行某些操作,從而實現復雜的邏輯和功能。掌握控制語句是編寫有效和高效C程序的關鍵。


1 條件控制

條件控制語句用于根據某些條件來決定程序的執行路徑。C語言提供了多種條件控制結構,包括if語句、else if語句和switch語句。

1.1 if語句

if語句用于在條件為真時執行特定的代碼塊。它是最基本的條件控制語句。

語法

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

示例與詳細說明

#include <stdio.h>int main() {int num = 10;// 使用if語句判斷num是否為正數if (num > 0) {printf("num 是一個正數。\n");}return 0;
}

輸出

num 是一個正數。

詳細解釋

  • 條件表達式num > 0,如果num大于0,條件為真(1),則執行if塊中的代碼。

  • 執行流程

    1. 計算條件num > 0
    2. 如果條件為真,執行大括號 {} 內的代碼。
    3. 如果條件為假,跳過if塊中的代碼。

更多示例

#include <stdio.h>int main() {int age = 18;// 判斷是否成年if (age >= 18) {printf("你已成年,可以投票。\n");}return 0;
}

輸出

你已成年,可以投票。
1.2 else if語句

else if語句用于在第一個if條件不滿足時,提供多個條件判斷的可能性。它允許在多個條件之間進行選擇。

語法

if (條件1) {// 條件1為真時執行的代碼
} else if (條件2) {// 條件2為真時執行的代碼
} else {// 所有條件都不滿足時執行的代碼
}

示例與詳細說明

#include <stdio.h>int main() {int score = 85;// 使用if-else if-else結構判斷成績等級if (score >= 90) {printf("成績等級:A\n");} else if (score >= 80) {printf("成績等級:B\n");} else if (score >= 70) {printf("成績等級:C\n");} else if (score >= 60) {printf("成績等級:D\n");} else {printf("成績等級:F\n");}return 0;
}

輸出

成績等級:B

詳細解釋

  • 條件判斷順序
    1. 判斷score >= 90,如果為真,輸出A并跳過后續條件。
    2. 如果上一個條件為假,判斷score >= 80,如果為真,輸出B
    3. 依此類推,直到最后的else塊。
  • 執行流程
    1. 依次檢查每個ifelse if的條件。
    2. 當某個條件為真時,執行對應的代碼塊,并跳過剩余的條件檢查。
    3. 如果所有條件都不滿足,執行else塊中的代碼。

更多示例

#include <stdio.h>int main() {int temperature = 30;// 判斷天氣情況if (temperature > 30) {printf("天氣非常熱,適合游泳。\n");} else if (temperature > 20) {printf("天氣溫暖,適合戶外活動。\n");} else if (temperature > 10) {printf("天氣稍涼,適合散步。\n");} else {printf("天氣寒冷,建議在室內活動。\n");}return 0;
}

輸出

天氣溫暖,適合戶外活動。
1.3 switch語句

switch語句用于基于一個變量的不同值來執行不同的代碼塊。它通常用于替代多個if-else if條件判斷,使代碼更加簡潔和易讀。

語法

switch (表達式) {case1:// 當表達式等于值1時執行的代碼break;case2:// 當表達式等于值2時執行的代碼break;

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

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

相關文章

Mac電腦基本功能快捷鍵

1. 個性化桌面 將喜愛照片添加為桌面墻紙。前往“系統設置”&#xff0c;然后點按邊欄中的“墻紙”。點按“添加照片”&#xff0c;然后從文件或“照片”App選取一張照片。 2. 截屏 按下鍵盤上的Shift &#xfffc; Command ? 5&#xff0c;然后選取捕捉整個屏幕、App窗口或…

微算法科技(NASDAQ: MLGO)開發量子邊緣檢測算法,為實時圖像處理與邊緣智能設備提供了新的解決方案

圖像邊緣檢測是計算機視覺的核心任務&#xff0c;傳統算法&#xff08;如 Sobel、Canny&#xff09;依賴梯度計算與閾值分割&#xff0c;在處理高分辨率、復雜紋理圖像時面臨計算效率瓶頸。隨著量子計算技術的發展&#xff0c;利用量子態疊加與并行處理特性&#xff0c;微算法科…

斷點續傳Demo實現

基于我們的DownloadManager.swift代碼&#xff0c;讓我詳細解釋斷點續傳需要實現的核心功能&#xff1a; 斷點續傳的核心實現要素 1. 后臺會話配置 private func setupBackgroundSession() {let config URLSessionConfiguration.background(withIdentifier: "com.test.do…

《Leetcode》-面試題-hot100-子串

題目列表 560. 和為K的子數組 中等難度 leetcode鏈接 239 滑動窗口最大值 困難難度 leetcode鏈接 76 最小覆蓋子串 困難難度 leetcode鏈接 題目 &#xff08;1&#xff09;和為K的子數組 給你一個整數數組 nums 和一個整數 k &#xff0c;請你統計并返回 該數組中和為 …

點擊彈框以外的區域關閉彈框

在 Vue 3 中&#xff0c;如果你想判斷點擊的目標是否在彈框內&#xff0c;可以通過以下步驟實現。這里我們將使用 ref 來引用彈框組件&#xff0c;并在點擊事件中進行判斷。 示例代碼 1. 創建彈框子組件 首先&#xff0c;創建一個名為 Modal.vue 的子組件。 <!-- Modal.vue …

00.Vue基礎入門【小白級別手把手!】

目錄 一、Vue介紹 二、創建Vue項目 nodeJs nvm版本管理 創建Vue項目 VS Code編輯器 三、.Vue文件結構說明 數據渲染 四、Vue項目目錄說明 main.ts文件說明 五、Vue官網文檔學習 一、Vue介紹 基礎介紹 Vue是一個前端Web框架&#xff0c;屬于單頁應用&#xff08;SPA&am…

將Varjo XR技術融入戰斗機訓練模擬器,有效提升模擬訓練沉浸感與效率

本周在Varjo總部&#xff0c;收到了一份令人興奮的禮物&#xff0c;一架由Dogfight Boss與varjo XR-4集成的訓練模擬器。這是一個專業級模擬器&#xff0c;專為高保真訓練和任務排練而設計&#xff0c;非常注重細節&#xff0c;提高了沉浸水平。為此Dogfight Boss的首席執行官L…

C# async await 實現機制詳解

一、async/await 異步編程實現機制 1.1 核心概念 async/await 是 C# 5.0 引入的語法糖&#xff0c;它基于**狀態機&#xff08;State Machine&#xff09;**模式實現&#xff0c;將異步方法轉換為編譯器生成的狀態機類。 1.2 編譯器轉換過程 當編譯器遇到 async 方法時&#xf…

Servlet 學習筆記

本文為記錄Servlet學習時的一些筆記和代碼 課程參考黑馬程序員 對于Java Web 學習的一個復習一 概述server applet 運行在服務器端的小程序 本質就是一個接口 定義java類被瀏覽器訪問到&#xff08;Tomcat識別&#xff09;的規則我們會自定義這樣一個類來實現復寫方法實現接口二…

【maven】倉庫配置

目錄 一、本地倉庫 二、私有倉庫 三、阿里云倉庫 一、本地倉庫 針對無外網、無maven私服&#xff0c;只有本地倉庫&#xff0c;進行maven項目開發。在maven的settings.xml中設置三項&#xff1a; 1、本地倉庫地址 默認在當前系統用戶下創建目錄&#xff1a;.m2/repository…

信息系統架構設計的系統性解析

一、信息系統架構設計??概念定義??&#xff1a;信息系統架構&#xff08;ISA&#xff09;是對系統組件、交互關系及環境約束的結構化抽象&#xff0c;確保業務目標與技術實現對齊。核心要素包括業務邏輯層、數據層、應用層和基礎設施層。??設計方法??&#xff1a;??T…

編譯舊版本的electron內核

我們的軟件產品使用的electron框架&#xff0c;electron框架是不斷更新的&#xff0c;但是我們的軟件太過龐大復雜&#xff0c;不敢輕易升級electron框架。Electron舊版本存在一些BUG和不合理的地方&#xff0c;需要去修復BUG或者不合理的地方。修復完BUG后&#xff0c;要對ele…

Elastic 9.1/8.19:默認啟用 BBQ,ES|QL 支持跨集群搜索(CCS)正式版,JOINS 正式版,集成 Azure AI Foundry

作者&#xff1a;來自 Elastic Mark Doncov 今天&#xff0c;我們很高興宣布 Elastic 9.1 和 8.19 正式發布&#xff01; 是的&#xff0c;又有好消息 —— 我們將 8.x 系列最終延長到 8.19&#xff0c;這樣那些還在等待升級到 9.x 的用戶也能享受到許多新功能。 Elastic 9.1…

Redis面試精講 Day 8:Stream消息隊列設計與實現

【Redis面試精講 Day 8】Stream消息隊列設計與實現 文章標簽 Redis,消息隊列,Stream,面試技巧,分布式系統,后端開發 文章簡述 本文是"Redis面試精講"系列第8天&#xff0c;聚焦Redis 5.0引入的Stream消息隊列。文章深入解析Stream的核心概念與實現原理&#xff0…

【01】大恒相機SDK C++開發 —— 初始化相機,采集第一幀圖像、回調采集、關閉相機

文章目錄1 初始化相機&#xff0c;采集第一幀圖像2 回調方式采集圖像3 視頻教程1 初始化相機&#xff0c;采集第一幀圖像 #include <iostream> #include <GalaxyIncludes.h> using namespace std;int main() {//首先&#xff0c;對相機資源進行初始化IGXFactory::…

Windows下定位Mingw編譯的Qt程序崩潰堆棧

一、dump和pdb是什么 在Windows系統下&#xff0c;當我們寫的程序跑在客戶的機器上&#xff0c;因為一個bug&#xff0c;導致程序崩潰&#xff0c;我們該如何定位并修復這個bug呢&#xff1f; 有人會說記錄日志&#xff0c;即便有日志&#xff0c;也是不好定位的&#xff0c;因…

.net依賴注入框架 Autofac和MEF的對比

Autofac 默認需要顯式注冊每個類型&#xff0c;這是它與MEF在模塊化設計上的主要區別。以下是具體對比說明&#xff1a;1. Autofac 的基本注冊方式 Autofac 必須通過代碼明確注冊每個需要注入的類型&#xff08;除非使用特殊掃描機制&#xff09;&#xff1a; var builder new…

Python 使用 asyncio 包處理并 發(使用asyncio包編寫服務器)

使用asyncio包編寫服務器 演示 TCP 服務器時通常使用回顯服務器。我們要構建更好玩一點的示 例服務器&#xff0c;用于查找 Unicode 字符&#xff0c;分別使用簡單的 TCP 協議和 HTTP 協議實現。這兩個服務器的作用是&#xff0c;讓客戶端使用 4.8 節討論過的 unicodedata 模塊…

Node.js (Express) + MySQL + Redis構建項目流程

以下是使用 Node.js (Express) MySQL Redis 構建完整項目的詳細流程&#xff0c;涵蓋環境搭建、架構設計、核心代碼實現和部署優化&#xff1a;一、項目初始化 1. 創建項目目錄 mkdir my-project cd my-project npm init -y2. 安裝基礎依賴 npm install express mysql2 redis…

Python3 中使用zipfile進行文件(夾)的壓縮、解壓縮

一、文件壓縮與解壓縮模塊 zipfile簡介 zipfile 是 Python 標準庫中用于處理 ZIP 壓縮文件的模塊&#xff0c;提供了創建、讀取、寫入、解壓 ZIP 文件的完整功能。它支持多種壓縮算法&#xff0c;無需安裝額外依賴&#xff0c;是處理 ZIP 格式的首選工具。 核心功能與常用類 zi…