for迴圈語句

来源:https://www.cnblogs.com/fenghua13/archive/2018/11/16/9969558.html
-Advertisement-
Play Games

在C語言中,有三種類型的迴圈語句:for語句、while語句和do While語句。分別介紹如下: 摺疊 for for為當型迴圈語句,它很好地體現了正確表達迴圈結構應註意的三個問題: ⑴控制變數的初始化。 ⑵迴圈的條件。 ⑶迴圈控制變數的更新。 for表達式 表達式1:一般為賦值表達式,給控制變數 ...


在C語言中,有三種類型的迴圈語句:for語句、while語句和do While語句。分別介紹如下:

摺疊 for

  • for為當型迴圈語句,它很好地體現了正確表達迴圈結構應註意的三個問題:

⑴控制變數的初始化。

⑵迴圈的條件。

⑶迴圈控制變數的更新。

表達式1:一般為賦值表達式,給控制變數賦初值;

表達式2:關係表達式或邏輯表達式,迴圈控制條件;

表達式3:一般為賦值表達式,給控制變數增量或減量。

語句:迴圈體,當有多條語句時,必須使用複合語句

  • for語句格式為:

for(表達式1;表達式2;表達式3)語句:/*迴圈體*/

  • for語句執行過程如下:

迴圈語句迴圈語句①先對表達式1賦初值;

②判別表達式2是否滿足給定條件,若其值為真,滿足迴圈條件,則執行迴圈體內語句,然後執行表達式3,進入第二次迴圈,再判別表達式2……;否則判斷表達式2的值為假,不滿足條件,就終止for迴圈,執行迴圈體外語句。for語句語法流程如下圖所示:

  • 例題:

迴圈語句迴圈語句# include

main ()

{

int n,nu;

nu=0;

for (n=1;n<=200;n++)

nu+=n; //a+=b就是a=a+b

printf ("nu=%d\n",nu);

}

編譯並執行後,屏幕顯示:

nu=20100

在程式中,for語句小括弧內的三個表達式分別為:n=1;n<=200;n++。表達式1,n=1是給n賦初值,表達式2是關係表達式,n小於等於200時,表達式都為真,則執行迴圈體內的語句nu+=n;(即nu=nu+n;),然後執行表達式3(n++),進入下一輪迴圈;若n大於200時,表達式2為假,則終止迴圈,執行printf()語句,在屏幕上列印出:nu=20100。

  • 幾種特殊for語句的用法:

⑴for小括弧內三個表達式為空

例 for(;;)

printf ("test");

在小括弧內只有兩個分號,無表達式。表示無限迴圈。這種無限迴圈適用於菜單選擇程式中。

⑵沒有迴圈體的for語句

例:for(; *str==''; str++);

這種情況迴圈體內的語句只是一個分號,這個for迴圈是指針str所指流中的前導空格刪除。

例:for (t=0;t ;)

此例在程式中起延時作用。

 摺疊 while

►while結構迴圈為當型迴圈(when type loop),一般用於不知道迴圈次數的情況。維持迴圈的是一個條件表達式,條件成立執行迴圈體,條件不成立退出迴圈。

  • while語句格式為:

►while(條件表達式)

►{

► 迴圈體;

►}

►每次執行迴圈體前都要對條件表達式進行判斷。

這裡的表達式是迴圈能否繼續下去的條件,而語句是迴圈體。只要表達式為真,則執行迴圈體內語句。否則終止迴圈,執行迴圈體外語句。

  • 例題:f7_2.c

# include h

main ()

{

int u,v,temp;

printf("請輸入兩個非負整數:\n");

scanf("% d % d ",& u,&v);

While(v!=0)

{

temp=u% v;/*迴圈體內語句*/

u=v; /*迴圈體內語句*/

v=temp; /*迴圈體內語句*/

}

printf("最大公約數是:%d\n",u);

}

編譯並執行結果,屏幕顯示:

請輸入兩個非負整數:

若從鍵盤輸入:150 35並回車,屏幕顯示:

最大公約數是:5

程式中,while迴圈體內有三條語句,應用大括弧括起來,表示一個語句塊。當表達式v!=0為真時,程式迴圈執行迴圈體內三條語句,直到v!=0為假時,終止迴圈,執行printf()語句,在屏幕上顯示最大公約數。

 摺疊 dowhile

►do…while語句結構為直到型迴圈(until type loop),也用於不知道迴圈次數的情況。do…while和while的區別在於do…while結構是執行完一遍迴圈體再判斷條件。

  • do while語句格式為:

►do

►{

► 迴圈體;

►}while(條件表達式);

►每執行完一次迴圈體,do…while結構都要判斷一下條件表達式。

程式進入do while迴圈後,先執行迴圈體內語句,然後判斷表達式的真假,若為真則進行

下一次迴圈,否則為假則終止迴圈。該迴圈語句的特點是,表達式為假時也執行一次迴圈體內語句。

  • do while語句語法流程如下圖所示:

總的說來,for和while迴圈是在頂上測試迴圈終止條件,而do while迴圈是在之後,在底部進行測試所以迴圈體至少要執行一次。

利用do while迴圈的特點,可寫出菜單程式。

  • 例題:

#include<stdio.h>

main ()

{

char ch;

printf("1.輸入記錄\n");

printf("2.刪除記錄\n");

printf("3.顯示記錄\n");

printf("請選擇:\n");

do

{

ch=getchar ();

switch (ch)

{

case '1' :printf ("輸入記錄 \n");

break;

case '2' :printf ("刪除記錄 \n");

break;

case '3' :printf ("顯示記錄 \n");

break;

default:printf("選擇錯!\n");

}

}while(ch!='1'&&ch!='2'&&ch!='3');

}

while與do while的區別

►假設條件表達式一開始就是不成立的。

►while結構的迴圈體一遍也不會運行。

►do…while結構的迴圈體運行了一遍。

本程式執行的過程是,通過do while迴圈體內的第一條語句ch=getchar ()接收用戶的選擇,第二條語句switch判斷用戶輸入是否是'1','2','3',若不是則顯示"選擇錯!"。程式利用do while語句的特點,首先執行迴圈體內語句一次,然後用表達式ch!='1'&&ch!='2'&& ch!='3'來迴圈判斷用戶的鍵盤輸入,只要不是'1'、'2'、'3',程式總是在這裡迴圈。

這個程式實例只是為了說明do while語句用法,實際應用中的菜單程式,要在每條case語句冒號後面寫出要調用的相應函數。

總結以上三種迴圈語句,for語句的功能最強,它有多種特殊形式。該語句小括弧內的表達式,可任意變動,可以省略,也可以增加。例如,在小括弧內的分號間增加幾個表達式如for(m=0,h=1;n<100;n++),或for (h=0,j-50;h<=j;h++,j--)等等。可以將迴圈體的一些語句放在表達式3的位置,中間用逗號分隔。如:for (i=1,j=strlen (me); i 三種迴圈語句,均可嵌套使用,也就是在一個迴圈內又包含另一個迴圈結構。也可互相嵌套使用,可有多曾嵌套結構。

軟道語錄

迴圈語句

迴圈語句就是根據迴圈條件反覆執行相同的語句,直到迴圈條件不成立。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 日期插件rolldate.js的使用 下載地址:http://www.jq22.com/jquery-info19834 效果: 代碼: ...
  • 1.起因 在上個項目中,客戶希望時間選擇插件可以是ios風格的那種,但是找了很久,發現並沒有用vue的ios風格時間插件,於是自己便自己造了一個輪子. 2.插件效果 3.插件依賴以及安裝使用 插件依賴於better-scroll和vue,安裝流程如下: 4.源碼查看與調試 可以在我的Github上查 ...
  • 效果圖 (通過js實現對時間處理); 這是時間處理的函數, 代碼註釋說明的也還清楚, 這是文件鏈接,可以直接打開,保存一下 https://blog-static.cnblogs.com/files/yk95/commonFunc.js 頁面數據是自己模擬的 接著頁面中去使用 時間處理的函數 和 假 ...
  • 什麼是JavaScript JavaScript的起源 JavaScript的組成 ...
  • css部分 .ovfHiden{ overflow: hidden; height: 100%; } js部分 $(".btn1").click(function(){ $('html,body').addClass('ovfHiden'); //使網頁不可滾動 $(".layer").show() ...
  • css中url(../images/1.jpg)路徑是相對於index.css的 js中url(images/1.jpg)路徑是相對於index.html的,並不是相對於index.js ...
  • 入門者的知識體系包括哪些東西呢,下麵是我的個人看法,按照這個流程走不一定立刻成為大牛,至少能讓入門者抓住重點一步步走下去: 1. 基本工具使用Git/GitHub的熟練使用,編輯器(sublime、webstrom、atom、vscode)的體驗區分與使用,chrome開發調試工具的使用,Photo ...
  • CSS2多媒體查詢: @media規則在css2中有介紹,針對不同媒體類型(包括顯示器,便攜設備,電視機,等等)可以定製不同的樣式規則。 CSS3多媒體查詢: CSS3多媒體查詢繼承了CSS2多媒體類型的所有思想,取代了查找設備的類型,CSS3根據設置自適應顯示。 多媒體查詢可以檢查很多事情: vi ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...