
在C語言中,for語句使用最為靈活,它完全可以取代 while 語句。它的一般形式為:
for(表達式1; 表達式2; 表達式3) 語句
它的執行過程如下:先求解表達式1。
求解表達式2,若其值為真(非0),則執行for語句中指定的内嵌語句,然後執行下面第3)步;若其值為假(0),則結束循環,轉到第5)步。
求解表達式3。
轉回上面第2)步繼續執行。
循環結束,執行for語句下面的一個語句。
其執行過程可用下圖表示。
for語句最簡單的應用形式也是最容易了解的形式如下:
小編給大家推薦一個學習氛圍超好的地方,C/C++交流企鵝裙:870963251!适合在校大學生,小白,想轉行,想通過這個找工作的加入。裙裡有大量學習資料,有大神解答交流問題,每晚都有免費的直播課程
for(循環變量賦初值; 循環條件; 循環變量增量) 語句
循環變量賦初值總是一個指派語句,它用來給循環控制變量賦初值;循環條件是一個關系表達式,它決定什麼時候退出循環;循環變量增量,定義循環控制變量每循環一次後按什麼方式變化。這三個部分之間用分号(;)分開。例如:for( i=1; i<=100; i++ ) sum=sum+i;
先給i賦初值1,判斷i是否小于等于100,若是則執行語句,之後值增加1。再重新判斷,直到條件為假,即i>100時,結束循環。相當于:i=1;
while(i<=100){
sum=sum+i;
i++;
}
對于for循環中語句的一般形式,就是如下的while循環形式:
表達式1;
while(表達式2){
語句
表達式3;
}
使用for語句應該注意:
1) for循環中的“表達式1(循環變量賦初值)”、“表達式2(循環條件)”和“表達式3(循環變量增量)”都是選擇項,即可以預設,但分号(;)不能預設。
2) 省略了“表達式1(循環變量賦初值)”,表示不對循環控制變量賦初值。
3) 省略了“表達式2(循環條件)”,則不做其它處理時便成為死循環。例如:for( i=1; ; i++ ) sum=sum+i;
相當于:i=1;
while(1){
sum=sum+i;
i++;
}
4) 省略了“表達式3(循環變量增量)”,則不對循環控制變量進行操作,這時可在語句體中加入修改循環控制變量的語句。例如:for( i=1; i<=100 ; ){
sum=sum+i;
i++;
}
5) 省略了“表達式1(循環變量賦初值)”和“表達式3(循環變量增量)”。例如:for( ; i<=100 ; ){
sum=sum+i;
i++;
}
相當于:while(i<=100){
sum=sum+i;
i++;
}
6) 3個表達式都可以省略。例如:
for( ; ; ) 語句
相當于:
while(1) 語句
7) 表達式1可以是設定循環變量的初值的指派表達式,也可以是其他表達式。例如:for( sum=0; i<=100; i++ ) sum=sum+i;
8) 表達式1和表達式3可以是一個簡單表達式也可以是逗号表達式。for( sum=0,i=1; i<=100; i++ ) sum=sum+i;
或:for( i=0,j=100; i<=100; i++,j-- ) k=i+j;
9) 表達式2一般是關系表達式或邏輯表達式,但也可是數值表達式或字元表達式,隻要其值非零,就執行循環體。例如:for( i=0; (c=getchar())!=’ ’; i+=c );
又如:for( ; (c=getchar())!=’ ’ ; )
printf("%c",c);
循環的嵌套
【例6-7】循環嵌套的應用。#include <stdio.h>
int main(void){
int i, j, k;
printf("i j k ");
for (i=0; i<2; i++)
for(j=0; j<2; j++)
for(k=0; k<2; k++)
printf("%d %d %d ", i, j, k);
return 0;
}