【循環程序設計-譚浩強適配】(適合專升本、考研)

無償分享學習資料,需要的小伙伴評論區或私信dd。。。

無償分享學習資料,需要的小伙伴評論區或私信dd。。。

無償分享學習資料,需要的小伙伴評論區或私信dd。。。

完整資料如下:純干貨、純干貨、純干貨!!!

關注專欄:<后續持續更新>


目錄

循環結構語句

1.while循環語句

2.do-while循環語句

3.for循環語句

4.goto語句

循環結構的嵌套

三種循環的比較

break語句

continue語句

break與continue的區別:


循環結構語句

分類:while循環語句、do-while循環語句、for循環語句、goto語句。

  • 所有循環語句與選擇語句相同,若后面的循環體是一個復合語句則需要加上{}括起來。

  • 一般情況下三種循環語句可以相互替換(只有while與for無條件等價)

  • 只有for循環可以缺省表達式(while與do-while都不可以)

1.while循環語句

格式:

while(表達式){ //只要條件表達式為真就執行下面的循環體循環體;
}
  • while語句的特點是先判斷條件表達式、后執行循環體語句(這點與do-while區別)

  • while后面的表達式稱為循環條件表達式(24年真題)

  • while配合getchar賦值,只要第一次滿足條件,那么讓你多次輸入直到不滿足條件為止

    char ch;
    while((ch=getchar())!='9');//只要不等于9,那么執行空語句,返回去再判斷,判斷又要進行輸入
    printf("ok");

2.do-while循環語句

格式:

do{循環體;//先無條件執行一次,在判斷循環條件,為真則繼續執行
}
while(表達式);
  • do-while循環是先無條件執行一次循環體,再去判斷循環條件(這點與while不同),即do-while至少執行一次循環體

  • do后面不允許加分號,while后面必須加分號

3.for循環語句

格式:

for(表達式1;表達式2;表達式3){循環體;
}
//表達式1:設置初始條件,只執行一次。可以為零個、一個或多個變量設置初值
//表達式2:循環判斷條件(循環條件表達式)
//表達式3:循環變量的增值或減值(使循環趨于結束的條件)
  • for循環不僅可以解決循環未知的問題,還特別適合解決循環次數未知的問題,可完全代替while語句,即兩者無條件等價。

  • 表達式1還可以是與循環無關的其他表達式,同時允許在表達式1內定義變量并初始化(此變量作用域只限于for語句),如果定義多個變量,那么多個變量只能是同一數據類型

    for(sum=0;i<100;i++){sum+=i}//與循環無關的變量
    ?
    for(int sum=0;i<100;i++){sum+=i}//定義并初始化
    ?
    for(int i=1,sum=0;i<100;i++);//i與sum都是int類型

  • 表達式2省略時循環條件一直為真,導致for循環無終止死循環(可以在循環體中配合break判定)

  • 表達式3省略需要在循環體內設置趨于結束的循環條件(即表達式3與循環體內的內容可以調換位置。

  • 當三個表達式都省略時,for循環會陷入死循環

    for(;;){printf("ok");//無終止輸出“ok”
    }

  • 三個表達式都可以是逗號表達式。

    for(int i=0,sum=1;i<100,sum<200;i++,sum++){printf("ok");
    }
    ??注意:此時表達式2以最后一個終止條件為準。

  • 三個循環語句中,只有for循環可以缺省循環條件表達式

  • 表達式1一般在for語句之前定義并初始化,因為這樣可以在for語句之外拿到循環變量的值。

    int i=0;
    for(;i<=10;i++){printf("ok\n");
    }
    ??注意:循環結束后,循環變量等于循環結束的終止值+1,即這里的i最后等于11。

  • 表達式3可以與循環體互換位置,作用效果相同。

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

4.goto語句

格式:goto 語句標號

loop:if(i<100){sum+=i;i++;goto loop;//在執行到goto語句時,跳轉到上面語句標號的位置執行
}
  • goto 語句語句標號:必須在同一函數內(即在同一函數內,可以跳轉到任何地方)

  • 語句標號:不允許放在初始化語句和聲明語句前面

    loop:int i 和 loop int i=1都是錯誤的

  • goto語句通常與if語句連用以構成循環的目的

    loop:if(i<100){sum+=i;i++;goto loop;//在執行到goto語句時,跳轉到上面語句標號的位置執行
    }

循環結構的嵌套

定義:在一個循環語句中又包含另一個完整的循環語句稱為循環嵌套

  • 三種循環語句可以相互嵌套。

  • 內循環使用break與continue對外循環沒有影響。

三種循環的比較

  1. 一般情況下,3種循環可以相互替換。

  2. while和do-while的循環體中必須指定循環趨于結束的語句,而for可以放在表達式3也可以放在循環體中。

  3. while和do-while的循環初始條件操作應該放在while和do-while之前完成。

break語句

作用:終止循環,跳出循環體(還可以跳出switch分支)

  • break只能用于循環語句與switch語句之中,不能單獨使用。(如果出現在其他語句中,說明其他語句在循環或switch中)

    int a=12;
    for(int i=0;i<a;i++){if(i==5)break;//出現在if語句中,原因if在for語句中
    }

continue語句

作用:終止“本次”循環

  • continue只能出現在循環體中(如果出現在其他語句中,說明其他語句在循環中)

    int a=12;
    for(int i=0;i<a;i++){switch(i){case 12:break;case 10:continue;}
    }
break與continue的區別:

break是結束當前循環,所以在嵌套循環中,內循環遇到一個break,是結束整個內循環,但是沒有結束外循環

continue是結束本次循環,所以在嵌套循環中,內循環遇到一個continue,是結束內循環這一次的循環條件,直接進行到內循環下一個

循環條件

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

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

相關文章

淺談電動汽車充電站的電氣安全

1 引言 1月14日日上午10點左右&#xff0c;青島市市北區遼寧路63號公交停車場內&#xff0c;一輛報廢公交車突然起火&#xff0c;由于大風天氣&#xff0c;大火很快引燃了停在旁邊的幾輛報廢車。消防人員快速趕到&#xff0c;迅速控制住火勢。11時30分&#xff0c;停車場內的…

鴻蒙內核源碼分析(ELF格式篇) | 應用程序入口并不是main

閱讀之前的說明 先說明&#xff0c;本篇很長&#xff0c;也很枯燥&#xff0c;若不是絕對的技術偏執狂是看不下去的.將通過一段簡單代碼去跟蹤編譯成ELF格式后的內容.看看ELF究竟長了怎樣的一副花花腸子&#xff0c;用readelf命令去窺視ELF的全貌&#xff0c;最后用objdump命令…

Image to Music V2 :只需上傳一張照片,自動轉換成與圖片內容匹配的音頻!

前言 我們之前肯定已經見過了很多文本生成圖片、文本生成聲音以及AI翻唱歌曲 等多種AI產品&#xff08;模型&#xff09;。 其實音樂和圖片從某種意義上來說都是藝術創作的一種形式&#xff0c;它們可以相互配合&#xff0c;共同呈現出一種更加豐富、感性的表達方式。 將圖片…

弘君資本:人形機器人概念走強,盛通股份漲停,怡合達、鼎智科技等拉升

人形機器人概念14日盤中拉升走高&#xff0c;到發稿&#xff0c;盛通股份漲停&#xff0c;怡合達、鼎智科技漲約6%&#xff0c;索辰科技、偉創電氣、豐立智能等漲超4%。 音訊面上&#xff0c;5月13日&#xff0c;宇樹發布人形智能體Unitree G1&#xff0c;身高127cm,體重35kg&…

[240514] OpenAI 發布 GPT-4o,人機交互的歷史性時刻 | 蘋果芯片進軍服務器劍指AI? | 谷歌大會以AI為主

目錄 OpenAI 發布 GPT-4o&#xff0c;人機交互的歷史時刻蘋果芯片進軍服務器&#xff0c;劍指生成式 AI2024年谷歌開發者大會將圍繞 AI 展開 OpenAI 發布 GPT-4o&#xff0c;人機交互的歷史時刻 OpenAI 發布了 GPT-4o&#xff0c;大家一直都想要現在終于等到的語音助手 : 勿需…

618值得入手的數碼產品怎么選?2024 買過不后悔的數碼好物分享

在數字時代的浪潮中&#xff0c;每一次的購物狂歡節都如同一場科技盛宴&#xff0c;讓我們有機會接觸到最前沿、最實用的數碼產品&#xff0c;而“618”無疑是這場盛宴中最為引人矚目的日子之一。面對琳瑯滿目的商品&#xff0c;如何選擇那些真正值得入手的數碼好物&#xff0c…

易寶OA-ExecuteQueryForDataSetBinary處sql注入

免責聲明&#xff1a; 本文內容為學習筆記分享&#xff0c;僅供技術學習參考&#xff0c;請勿用作違法用途&#xff0c;任何個人和組織利用此文所提供的信息而造成的直接或間接后果和損失&#xff0c;均由使用者本人負責&#xff0c;與作者無關&#xff01;&#xff01;&#…

Centos 安裝jenkins 多分支流水線部署前后端項目

1、安裝jenkins 1.1 安裝jdk 要求&#xff1a;11及以上版本 yum install yum install java-11-openjdk 1.2 安裝jenkins 導入鏡像 sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo出現以下錯誤 執行以下命令 sudo yum …

前端使用原生JS怎么上傳本地路徑的文件到后端【附源碼】

本文不使用<input type"file">等前端上傳組件 一、為什么不能使用本地文件路徑上傳&#xff1f; 前端不能直接根據本地文件路徑&#xff08;例如 C:\Users\Username\Documents\image.jpg&#xff09;上傳文件到后端服務器&#xff0c;原因主要在于瀏覽器的安全…

使用java遠程提交flink任務到yarn集群

使用java遠程提交flink任務到yarn集群 背景 由于業務需要&#xff0c;使用命令行的方式提交flink任務比較麻煩&#xff0c;要么將后端任務部署到大數據集群&#xff0c;要么弄一個提交機&#xff0c;感覺都不是很離線。經過一些調研&#xff0c;發現可以實現遠程的任務發布。…

LOTO示波器軟件PC緩存(波形錄制與回放)功能

當打開PC緩存功能后, 軟件將采用先進先出的原則排隊對示波器采集的每一幀數據, 進行幀緩存。 當發現屏幕中有感興趣的波形掠過時, 鼠標點擊軟件的(暫停)按鈕, 可以選擇回看某一幀的波形。一幀數據的量 是 當前用戶選擇時基檔位緩沖區總數據大小。不同時基檔位緩沖區大小不同&am…

談談std::map的lower_bound

我們知道std::map內部是一個紅黑樹&#xff0c;放到std::map里的數據等有一個能比較大小的方法。它相當于java里面的TreeMap。 它里面有個lower_bound方法&#xff0c;返回一個迭代器&#xff0c;它指向map里第一個大于等于參數的元素。 方法的簽名很簡單&#xff0c;但是在不同…

富格林:有效預防黑幕阻撓被騙

富格林指出&#xff0c;在投資領域&#xff0c;現貨黃金是一種備受推崇的貴金屬投資品種。倘若能有效預防黑幕阻撓被騙的情況&#xff0c;事實上現貨黃金是很多投資者的“理想型”。然而要想有效地預防黑幕阻撓被騙&#xff0c;就需要掌握足夠多的投資技巧。為此&#xff0c;富…

Milvus 基本概念

Milvus 是一個開源的向量數據庫&#xff0c;專門用于高效地存儲、管理和檢索大規模向量數據。它基于 Apache 許可證 2.0 版本發布&#xff0c;由 Zilliz 公司開源并維護。 Milvus 的設計理念是為了解決向量數據存儲和檢索的挑戰。在許多應用中&#xff0c;向量數據是一種重要的…

強化學習——馬爾可夫過程的理解

目錄 一、馬爾可夫過程1.隨機過程2.馬爾可夫性質3.馬爾可夫過程4.馬爾可夫過程示例 參考文獻 一、馬爾可夫過程 1.隨機過程 隨機過程是概率論的“動態”版本。普通概率論研究的是固定不變的隨機現象&#xff0c;而隨機過程則專注于那些隨時間不斷變化的情況&#xff0c;比如天…

C# 使用channel 實現Plc 異步任務之間的通信

channel 通信的例子: using ConsoleApp2; using System.Collections.Concurrent; using System.Threading.Channels;var queue = new BlockingCollection<Message>(new ConcurrentQueue<Message>());var opt = new BoundedChannelOptions(10) {FullMode = BoundedC…

Linux環境快速部署mysql5.7

1 網絡下載rpm包 wget -c https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar2 解壓 tar xf mysql-5.7.37-1.el7.x86_64.rpm-bundle.tar3 數據庫之間會沖突因此需要卸載mariadb-libs yum remove mariadb-libs4 安裝 如果沒有…

R語言兩種方法實現隨機分層抽樣

為了減少數據分布的不平衡&#xff0c;提供高樣本的代表性&#xff0c;可將數據按特征分層一定的層次&#xff0c;在每個層次抽取一定量的樣本&#xff0c;為分層抽樣。分層抽樣的特點是將科學分組法與抽樣法結合在一起&#xff0c;分組減小了各抽樣層變異性的影響&#xff0c;…

HTTP協議及Python實現

最近的項目需要頻繁在前后端之間傳輸數據&#xff0c;本篇主要介紹HTTP協議以及數據傳輸方法。 1 HTTP協議 1.1 http協議簡介 HTTP(Hypertext Transfer Protocol)是一種用于傳輸超文本數據的應用層協議。它是萬維網上數據交換的基礎&#xff0c;定義了客戶端和服務器之間進行通…

C語言指針詳解(三)

目錄 前言 一. 回調函數是什么&#xff1f; 1.定義 2. 代碼示例&#xff1a;計數器 2.1 使用回調函數改造前 2.2 使用回調函數改造后 二. qsort使用舉例 1. qsort介紹 2. 使用qsort函數排序整型數據 3. 使用qsort排序結構體數據 三. qsort函數的模擬實現 四. sizeo…