壹. for循環
for循環是開界的。它的壹般形式為:
for(<初始化>; <條件表過式>; <增量>)
語句;
初始化總是壹個賦值語句, 它用來給循環控制變量賦初值; 條件表達式是壹個關系表達式, 它決定什麽時候退出循環; 增量定義循環控制變量每循環壹次後按什麽方式變化。這三個部分之間用";"分開。
例如:
for(i=1; i<=10; i++)
語句;
上例中先給i賦初值1, 判斷i是否小於等於10, 若是則執行語句, 之後值增加1。再重新判斷, 直到條件為假, 即i>10時, 結束循環。
註意:
1. for循環中語句可以為語句體, 但要用"{"和"}"將參加循環的語句括起來。
2. for循環中的"初始化"、"條件表達式"和"增量"都是選擇項, 即可以缺省, 但";"不能缺省。省略了初始化, 表示不對循環控制變量賦初值。 省略了條件表達式, 則不做其它處理時便成為死循環。省略了增量, 則不對循環控制變量進行操作, 這時可在語句體中加入修改循環控制變量的語句。
3. for循環可以有多層嵌套。
例16:
main()
{
int i, j, k;
printf("i j k\n");
for (i=0; i<2; i++)
for(j=0; j<2; j++)
for(k=0; k<2; k++)
printf(%d %d %d\n", i, j, k);
}
輸出結果為:
i j k
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
二、 while循環
while循環的壹般形式為:
while(條件)
語句;
while循環表示當條件為真時, 便執行語句。直到條件為假才結束循環。 並繼續執行循環程序外的後續語句。
例17:
#include<stdio.h>
main()
{
char c;
c=’\0’; /*初始化c*/
while(c!=’\X0D’) /*回車結束循環*/
c=getche(); /*帶回顯的從鍵盤接收字符*/
}
上例中, while循環是以檢查c是否為回車符開始, 因其事先被初始化為空, 所以條件為真, 進入循環等待鍵盤輸入字符; 壹旦輸入回車, 則c=’\X0D’, 條件為假, 循環便告結束。
與for循環壹樣, while循環總是在循環的頭部檢驗條件, 這就意味著循環可能什麽也不執行就退出。
註意:
1. 在while循環體內也允許空語句。
例如:
while((c=getche())!=’\X0D’);
這個循環直到鍵入回車為止。
2. 可以有多層循環嵌套。
3. 語句可以是語句體, 此時必須用"{"和"}"括起來。
例18:
#include<stdio.h>
main()
{
char c, fname[13];
FILE *fp; /*定義文件指針*/
printf("File name:"); /*提示輸入文件名*/
scanf("%s", fname); /*等待輸入文件名*/
fp=fopen(fname, "r"); /*打開文件只讀*/
while((c=fgetc(fp)!=EOF) /*讀取壹個字符並判斷是否到文件結束*/
putchar(c); /*文件未結束時顯示該字符*/
}
三.do-while 循環
do-while 循環的壹般格式為:
do
語句;
while(條件);
這個循環與while循環的不同在於: 它先執行循環中的語句, 然後再判斷條
件是否為真, 如果為真則繼續循環; 如果為假, 則終止循環。因此, do-while循
環至少要執行壹次循環語句。
同樣當有許多語句參加循環時, 要用"{"和"}"把它們括起來。