for循環詳解與實戰技巧

目錄

一、for循環語法

二、for循環執行流程

流程圖表示:

三、for循環實踐示例

示例:在屏幕上打印1~10的值

四、while循環與for循環對比

for循環和while循環都包含三個關鍵部分:

兩者的主要區別在于代碼組織方式:

五、練習題

練習1:計算1~100之間3的倍數的數字之和

基礎實現:

優化版本(直接生成3的倍數,減少循環次數和判斷):


一、for循環語法

for循環是C語言中最常用的循環結構,其基本語法形式如下:

for(表達式1; 表達式2; 表達式3)語句;  // 如果循環體包含多條語句,需使用大括號{}

各表達式的作用:

  • 表達式1:循環變量初始化(僅在循環開始時執行一次)

  • 表達式2:循環繼續條件判斷(每次循環前檢查)

  • 表達式3:循環變量調整(每次循環后執行)


二、for循環執行流程

for循環的執行流程可以用以下步驟描述:

  1. 執行表達式1(初始化循環變量)

  2. 檢查表達式2(循環條件):

    • 如果結果為真(非0),繼續執行循環體

    • 如果結果為假(0),結束循環

  3. 執行循環體語句

  4. 執行表達式3(調整循環變量)

  5. 返回步驟2繼續判斷

流程圖表示:

注意:在整個循環過程中,表達式1只執行一次,而表達式2、循環體和表達式3會重復執行。


三、for循環實踐示例

示例:在屏幕上打印1~10的值

#include <stdio.h>int main()
{int i = 0;for(i = 1; i <= 10; i++){printf("%d ", i);}return 0;
}

運行結果


四、while循環與for循環對比

for循環和while循環都包含三個關鍵部分:

  1. 循環變量初始化

  2. 循環繼續條件判斷

  3. 循環變量調整

兩者的主要區別在于代碼組織方式:

  • for循環:三個部分集中在一起,結構清晰,便于維護

  • while循環:三個部分分散在代碼中,當代碼量較大時可能不夠直觀

因此,在大多數情況下,特別是循環次數明確時,for循環是更優的選擇。


五、練習題

練習1:計算1~100之間3的倍數的數字之和

基礎實現:

#include <stdio.h>int main()
{int i = 0;int sum = 0;for(i = 1; i <= 100; i++){if(i % 3 == 0)sum += i;}printf("%d\n", sum);return 0;
}

優化版本(直接生成3的倍數,減少循環次數和判斷):

#include <stdio.h>int main()
{int i = 0;int sum = 0;for(i = 3; i <= 100; i += 3){sum += i;}printf("%d\n", sum);return 0;
}

????????優化版本通過直接從3開始,每次增加3的方式,避免了不必要的循環迭代和條件判斷,提高了代碼效率。

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

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

相關文章

winform中的listbox實現拖拽功能

文章目錄前言一、實現前言 winform中的listBox實現拖拽&#xff01; 一、實現 winform中的listbox實現拖拽只需要實現四個事件 1、準備兩個listbox控件 其中listtarget&#xff0c;AllowDrop屬性設置為True。 2、實現四個事件 2.1MouseDown //在 MouseDown 事件期間&#x…

用 Docker 安裝并啟動 Redis:從入門到實戰

用 Docker 安裝并啟動 Redis&#xff1a;從入門到實戰Redis 作為一款高性能的鍵值對數據庫&#xff0c;在緩存、會話存儲、消息隊列等場景中被廣泛應用。本文將詳細介紹如何使用 Docker 快速安裝和啟動 Redis&#xff0c;包括基礎配置、數據持久化以及容器管理等核心操作&#…

ansible學習第一天

一&#xff1a;ansible基礎知識1.1 ansible的定義與工作原理簡述ansible是一個自動化運維工具&#xff0c;用于執行自動化任務&#xff0c;包括像配置管理&#xff0c;應用部署&#xff0c;任務執行等等&#xff0c;本質上來說也是基礎設施及代碼工具&#xff0c;通過可讀性較強…

Vue原理與高級開發技巧詳解

Vue 的底層原理、高級用法、性能優化和生態整合 文章目錄Vue 的底層原理、高級用法、性能優化和生態整合一、Vue 雙向綁定原理深度剖析1. Vue 2 實現原理&#xff08;Object.defineProperty&#xff09;2. Vue 3 實現原理&#xff08;Proxy&#xff09;3. v-model 高級用法二、…

axios的封裝

axios的封裝 在src目錄下新建文件夾utils工具類&#xff0c;文件夾里面新建http.js文件&#xff0c;如果項目涉及到多個基地址可以新建http2.js文件。 import axios from axios;/*** 后端*/// 創建axios實例 const http axios.create({// 1.接口基地址baseURL: http://192.168…

MariaDB 數據庫管理與web服務器

MariaDB 數據庫管理與WEB 服務器 介紹 MariaDB 數據庫介紹 **數據庫&#xff0c;是一個存放計算機數據的倉庫。**這個倉庫是按照一定的數據結構來對數據進行組織和存儲的&#xff0c;我們可以通過數據庫提供的多種方法來管理其中的數據。 數據結構&#xff0c;是指數據的組織形…

分治-歸并-912.排序數組-力扣(LeetCode)

一、題目解析1、將數組排升序2、在不使用任何內置函數的情況下解決問題二、算法原理分治-歸并合并兩個有序數組1、雙指針遍歷兩個合并數組2、將比較后的較小值放到新開數組中3、防止有指針未遍歷完&#xff0c;特殊處理4、將nums中的元素還原三、代碼示例vector<int> tmp…

網絡安全初學者學習心得

看到你對網絡安全學習的興趣&#xff0c;我感到非常振奮&#xff01;這個領域既充滿挑戰又回報豐厚&#xff0c;作為初學者&#xff0c;理清學習內容和方向確實至關重要。下面我將結合多年的行業觀察和指導經驗&#xff0c;為你詳細拆解網絡安全初學者的學習內容并分享一些核心…

防火墻筆記優化版

一、防火墻的核心定義防火墻是一種基于預設安全策略&#xff0c;用于隔離內網與外網、控制網絡流量的安全系統&#xff08;可分為軟件系統或硬件系統&#xff09;。其核心作用包括&#xff1a;流量隔離&#xff1a;物理或邏輯分隔內網、外網及 DMZ 區域&#xff08;DMZ 為內網與…

vue3前端項目cursor rule

cursor rule是什么&#xff0c;以及怎么定義&#xff0c;看這個文章&#xff1a; cursor中定義cursor rules_cursor rules如何編寫-CSDN博客 針對現有一個vue3的前端項目&#xff0c;寫了一份cursor rule&#xff0c;可以作為參考&#xff0c;內容如下&#xff08;僅作為參考&…

基于51單片機紅外遙控定時開關智能家電插座設計

1. 功能介紹 本設計是一款基于 STC8C52 單片機 的智能家電插座系統&#xff0c;集 紅外遙控控制、定時開關控制、自動與手動模式切換、掉電數據保存、液晶顯示、蜂鳴器提示 于一體&#xff0c;能夠方便用戶對家用電器進行精準的定時控制與遠程操作。系統廣泛適用于家用電器、辦…

下一代防火墻組網方案

知識回顧&#xff1a;1.傳統防火墻包括包過濾防火墻、應用網關防火墻、狀態檢測防火墻。2.包過濾防火墻工作在3、4層。3.包過濾防火墻特點&#xff1a;4.應用網關防火墻主要作用&#xff1a;①截取用戶初始化連接請求&#xff0c;對用戶進行認證&#xff1b;②通過ALG能讓多通道…

WEB開發-第二十七天(PHP篇)

DW PHPStorm PhpStudy Navicat Premium DW : HTML&JS&CSS開發 PHPStorm : 專業PHP開發IDE PhpStudy &#xff1a;Apache MYSQL環境 Navicat Premium: 全能數據庫管理工 變量覆蓋安全&#xff1a; $GLOBALS&#xff1a;這種全局變量用于在PHP腳本中的任意位置訪…

Lwip深度閱讀-網絡架構

LWIP網絡協議棧詳細介紹 本文的內容基本基于野火的LWIP手冊&#xff0c;和LWIP源碼撰寫。 網絡協議棧概述 從圖片可以看出&#xff0c;網絡協議棧采用分層架構&#xff0c;每一層都有特定的功能和協議。 TCP/IP協議分層模型數據封裝過程MAC數據包 我使用wireShark抓包的時候&am…

嵌入式系統學習Day16(C語言中的位運算)

位運算二進制位的運算嵌入式:通過位運算 控制 硬件運算: 運算規則 & 與 一假則假 | 或 一真則真 ~ 非 真假相對 ^ 異或 相同為假 不同為真 << 左移 表示二進制位的移動 >> 右移 eg:int a 0x55; int b 0x33;0101 0101 //0x55 &am…

Endnote下載,導入曼大 harvard_manchester格式

下載endnote 并激活中國農業科技文獻與信息服務平臺&#xff0c;點擊下載 下載harvard_manchester 格式 Harvard Manchester - Referencing guide at the University of Manchester - Subject guides at University of Manchester 雙擊打開第二步下載的安裝包&#xff08;使用…

【Docker進階實戰】從多容器編排到集群部署

Docker進階實戰&#xff1a;從多容器編排到集群部署 當你已經熟悉Docker的基本操作后&#xff0c;面對的下一個挑戰往往是&#xff1a;如何管理多個容器的協作&#xff1f;如何實現容器的集群化部署與擴展&#xff1f;如何保證服務的高可用&#xff1f; 一、Docker Compose&…

【Linux文件操作】文件操作系統調用

目錄 一、文件創建&#xff08;creat 系統調用&#xff09;? 1.1 函數原型 1.2 參數說明? 1.3 返回值? 1.4 使用示例 二、文件打開&#xff08;open 系統調用&#xff09;? 2.1 函數原型 2.2 參數說明? 2.3 返回值? 2.4 使用示例 三、文件讀寫&#xff08;read 和 write …

FreeRTOS源碼分析六:vTaskDelay vs xTaskDelayUntil任務延時

系列文章目錄 FreeRTOS源碼分析一&#xff1a;task創建&#xff08;RISCV架構&#xff09; FreeRTOS源碼分析二&#xff1a;task啟動&#xff08;RISCV架構&#xff09; FreeRTOS源碼分析三&#xff1a;列表數據結構 FreeRTOS源碼分析四&#xff1a;時鐘中斷處理響應流程 Free…

Linux學習-應用軟件編程(fread/fwrite,流定義相關接口)

freadsize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); 功能按塊從文件讀取數據&#xff0c;從文件中讀 nmemb 個、每個 size 字節的元素&#xff0c;存入 ptr 指向的內存。參數- ptr &#xff1a;存儲讀取數據的內存首地址&#xff08;需提前分配足夠…