c語言中for的用法
在C語言中,for語句使用最為靈活,它完全可以取代 while 語句。下面小編就跟你們詳細介紹下c語言中for的用法,希望對你們有用。
c語言中for的用法如下:
它的一般形式為:
for(表示式1; 表示式2; 表示式3) 語句
它的執行過程如下:
先求解表示式1。
求解表示式2,若其值為真(非0),則執行for語句中指定的內嵌語句,然後執行下面第3)步;若其值為假(0),則結束迴圈,轉到第5)步。
求解表示式3。
轉回上面第2)步繼續執行。
迴圈結束,執行for語句下面的一個語句。
其執行過程可用下圖表示。
for語句最簡單的應用形式也是最容易理解的形式如下:
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())!=’n’; i+=c );
又如:
for( ; (c=getchar())!=’n’ ; )
printf("%c",c);
迴圈的巢狀
【例6-7】迴圈巢狀的應用。
複製純文字新視窗
#include <stdio.h>
int main(void){
int i, j, k;
printf("i j kn");
for (i=0; i<2; i++)
for(j=0; j<2; j++)
for(k=0; k<2; k++)
printf("%d %d %dn", i, j, k);
return 0;
}