在計算機解決實際問題時,往往需要重讀執(zhí)行特定的一系列步驟或操作,就要用到循環(huán)結(jié)構(gòu)。需要執(zhí)行的一系列操作的次數(shù),有的是事先知道的,稱為計數(shù)器控制的循環(huán);有的是事先不知道的,由特定條件來控制,稱為條件控制的循環(huán)。
一、while循環(huán)
用goto和 if 構(gòu)成循環(huán)
while 語句
do ~ while 語句
for 語句
goto語句及用goto構(gòu)成循環(huán)
goto語句一般格式:
goto 語句標(biāo)號;
標(biāo)號:語句;
無條件轉(zhuǎn)移語句
說明:不能用整數(shù)作標(biāo)號;只能出現(xiàn)在goto所在函數(shù)內(nèi),且唯一;只能加在可執(zhí)行語句前面;限制使用goto語句;
例如:用if 和goto語句構(gòu)成循環(huán)求1到100之和
/*ch5_1.c*/
#include
main()
{ int i,sum=0;
i=1;
loop: if(i<=100)
{ sum+=i;
i++;
goto loop;
}
printf("%d",sum);
}
一般形式
while(表達(dá)式)
循環(huán)體語句;
執(zhí)行流程
While語句特點和說明
特點:先判斷表達(dá)式,后執(zhí)行循環(huán)體
說明:循環(huán)體有可能一次也不執(zhí)行l(wèi)循環(huán)體可為任意類型語句
下列情況,退出while循環(huán)
條件表達(dá)式不成立(為零)循環(huán)體內(nèi)遇break,return,gotol無限循環(huán):
while(1)
循環(huán)體;
例 顯示1~10的平方
/*ch5_21.c*/
#include
main()
{ int i=1;
while(i<=10)
{ printf("%d*%d=%d\\n",i,i,i*i);
i++;
}
}
運行結(jié)果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100
二、do~while循環(huán)
一般形式:
do
循環(huán)體語句;
while(表達(dá)式);
執(zhí)行流程
do~while語句特點和說明
特點:先執(zhí)行循環(huán)體,后判斷表達(dá)式
說明:至少執(zhí)行一次循環(huán)體;do~while可轉(zhuǎn)化成while結(jié)構(gòu)
三、for循環(huán)
一般形式
for([expr1] ;[ expr2] ;[ expr3])
循環(huán)體語句;
執(zhí)行流程
for語句一般應(yīng)用形式
for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增值)
{
循環(huán)體語句;
}
說明:
for語句中expr1,expr2 ,expr3 類型任意,都可省略,但分號;不可省
無限循環(huán): for(;;);for語句可以轉(zhuǎn)換成while結(jié)構(gòu)
expr1;
while(expr2)
{
循環(huán)體語句;
expr3;
}
例子
#include
main( )
{ int i;
for(i=0;i<10;i++)
putchar(‘a(chǎn)’+i);
}
運行結(jié)果:abcdefghij
四、循環(huán)的嵌套
三種循環(huán)可互相嵌套,層數(shù)不限。外層循環(huán)可包含兩個以上內(nèi)循環(huán),但不能相互交叉。嵌套循環(huán)的執(zhí)行流程
嵌套循環(huán)的跳轉(zhuǎn)
禁止:從外層跳入內(nèi)層;跳入同層的另一循環(huán);向上跳轉(zhuǎn);
(1) while()
{ ……
while()
{ ……
}
…...
}
(2) do
{ ……
do
{ ……
}while( );
…...
}while( );
(3) while()
{ ……
do
{ ……
}while( );
…….
}
(4) for( ; ;)
{ ……
do
{ ……
}while();
……
while()
{ ……
}
…...
}
程序舉例
for(i=1;i<10;i++)
for(j=1;j<10;j++)
printf((j==9)?"%4d\\n":"%4d",i*j);
循環(huán)的嵌套(圖解)
五、輔助控制語句
break語句
功能:在循環(huán)語句和switch語句中,終止并跳出循環(huán)體或開關(guān)體
說明:break只能終止并跳出最近一層的結(jié)構(gòu);break不能用于循環(huán)語句和switch語句之外的任何其它語句之中
continue語句
功能:結(jié)束本次循環(huán),跳過循環(huán)體中尚未執(zhí)行的語句,進(jìn)行下一次是否執(zhí)行循環(huán)體的判斷;僅用于循環(huán)語句中
-
計算機
+關(guān)注
關(guān)注
19文章
7419瀏覽量
87714 -
計數(shù)器
+關(guān)注
關(guān)注
32文章
2253瀏覽量
94352 -
循環(huán)結(jié)構(gòu)
+關(guān)注
關(guān)注
0文章
22瀏覽量
7716
發(fā)布評論請先 登錄
相關(guān)推薦
評論