C語言迴圈結構概述

2021-10-03 13:54:19 字數 2855 閱讀 9328

迴圈結構是程式中一種很重要的結構。其特點是在給定條件成立時,反覆執行某程式段,直到條件不成立為止。給定的條件稱為迴圈條件,反覆執行的程式段稱為迴圈體。c語言提供了多種迴圈語句,可以組成不同形式的迴圈結構。

goto語句和if語句構成迴圈、while語句、do-while語句、for語句。

1)goto語句:goto語句是一種無條件轉移語句,與basic中的goto語句相似。格式為:goto 語句標號;

其中標號是乙個有效的識別符號,這個識別符號加上乙個「:」一起出現在函式內某處,執行goto語句後,程式將跳轉到該標號處並執行其後的語句。另外標號必須與goto語句同處於乙個函式中,但可以不在乙個迴圈層中。通常goto語句與if條件語句連用,當滿足某一條件時,程式跳到標號處執行。

示例**段:(計算1-100連加)

int i = 1;int sum = 0;

loop: if(i<=100)

goto語句可以使程式執行跳轉到loop標號處執行。

注意:goto語句通常不用,主要是因為它將使程式層次不清,且不易讀,但在多層巢狀退出時,用goto語句則比較合理。

2)while語句:計算表示式的值,當值為真(非0)時,執行迴圈體語句。 格式為:while(表示式) 語句

其中表示式是迴圈條件,語句為迴圈體。

示例**段:(計算1-100連加)

int i = 1; int sum = 0;

while(i<=100)

注意:如果表示式的值一開始就為0,則語句一次也不會被執行。
3)do-while迴圈:與while迴圈的區別在於:它先執行迴圈中的語句,然後再判斷表示式是否為真,如果為真則繼續迴圈;如果為假,則終止迴圈。因此,do-while迴圈至少需要執行一次迴圈語句。格式為:do 語句 while(表示式)

示例**段:(計算1-100連加)

int i = 1; int sum = 0;

dowhile(1<=100)

4)for語句:一般形式為:for(表示式1;表示式2;表示式3)

執行過程如下:

1. 先求解表示式1

2. 求解表示式2,若其值為真(非0),則執行for語句中指定的內嵌語句,然後執行後面的第3步;若其值為假(0),則迴圈結束,轉到第5步。

3. 求解表示式3

4. 轉回上面第2步繼續執行

5. 迴圈結束,執行for語句下面的乙個語句

for語句簡單的應用形式(容易理解的形式)

for(迴圈變數賦初值;迴圈條件;迴圈變數增量)語句

迴圈變數賦初值總是乙個賦值語句,它用來給迴圈控制變數賦初值;迴圈條件是乙個關係表示式,它決定什麼時候退出迴圈;迴圈變數增量,定義迴圈控制變數每迴圈一次後按什麼方式變化。

示例**段:(計算1-100連加)

int sum = 0;

for(int 1 = 1;i <= 100;i++)

注意:

1.for迴圈中的「表示式1(迴圈變數賦初值)」、「表示式2(迴圈條件)」和「表示式3(迴圈變數增量)」都是選擇項,即可以預設,但「;」不能預設。

2.省略了「表示式1(迴圈變數賦初值)」,表示不對迴圈控制變數賦初值。

3.省略了「表示式2(迴圈條件)」,則不做其它處理時便成為死迴圈。

4.省略了「表示式3(迴圈變數增量)」,則不對迴圈控制變數進行操作,這時可在語句體中加入修改迴圈控制變數的語句。

例如:int i = 1; int sum = 0;

for(i = 1;i <= 100; )

5.省略了「表示式1(迴圈變數賦初值)」和「表示式3(迴圈變數增量)」

例如:int i = 1;int sum = 0;

for(; i <= 100 ;)

6. 3個表示式都可以省略

例如:for( ; ;)語句

相當於while(1)語句

7.表示式1可以是設定迴圈變數的初值的賦值表示式,也可以是其他表示式

例如:int i,sum;

for(i = 1,sum = 0;i <= 100;i++)

8.表示式1和表示式3可以是乙個簡單表示式也可以是逗號表示式。

例如:for(sum = 0,i = 1;i<= 100;i++)

sum = sum +i;

或者:int i,j,k;

for(i = 0,j = 100;i <= 100;i++,j--)

k = i + j;

9.表示式2一般是關係表示式或邏輯表示式,但也可以是數值表示式或字元表示式,只要其值非0,就執行迴圈體。

例如:char c; int i;

for(i = 0;(c=getchar())!='\n';i+=c)

對幾種迴圈進行比較:

1.四種迴圈都可以用來處理同一問題,一般情況下它們可以相互代替。但一般不提倡用goto型迴圈。

2.在while迴圈和do-while迴圈中,只在while後面的括號內指定迴圈條件,因此為了迴圈能正常結束,應在迴圈體中包含使迴圈趨於結束的語句。

3.for迴圈可以在表示式3中包含使迴圈趨於結束的操作,甚至可以將迴圈體重的操作全部放到表示式3中。因此for語句的功能更強,凡用while迴圈能完成的,用for迴圈都能實現。

4.用while和do-while迴圈時,迴圈變數初始化的操作應在while和do-while語句之前完成,而for語句可以在表示式1中實現迴圈變數的初始化。

5.while迴圈、do-while迴圈和for迴圈,可以用break語句跳出迴圈,用continue語句結束本次迴圈。而對於用goto語句和if語句構成的迴圈,不能用break語句和continue語句進行控制。

c語言迴圈結構

迴圈結構 1.goto無條件轉移語句 goto 無條件轉移語句 label goto label goto 結合if語句使用 盡量不要使用goto 只能在當前函式內跳轉 int main int argc,const char argv return 0 例項 goto實現1 100相加 inclu...

C語言 迴圈結構

列印7的倍數 while i 100 i 列印個位為7的數 while i 100 i 列印十位為7的數 while i 100 i 列印出不是7的倍數,且不包括7的數 while i 100 else i printf n printf n int j 100 while j 0 else j p...

c語言迴圈結構

for迴圈體語句 表示方法1 for 表示式1 表示式2 表示式3 的意義為 for 表示式1 表示式2 或者 表示方法2 表示式1 for 表示式2 表示式第乙個表示式進行初始化,它在for迴圈開始時執行一次,用於在迴圈開始前為迴圈變數賦初值。第二個表示式是判斷條件,在每次執行迴圈前都要對它進行求...