複製鏈接
請複製以下鏈接發送給好友

for循環

鎖定
for循環是編程語言中一種循環語句,而循環語句循環體及循環的判定條件兩部分組成,其表達式為:for(單次表達式;條件表達式;末尾循環體){中間循環體;}。 [1-2] 
中文名
for循環
外文名
For cycle
類    別
編程語言
功    能
循環執行
形    式
for (表達式1; 表達式2; 表達式3)

for循環for循環語法

1.語句最簡形式為:
for( ; ; )
2.一般形式為:
for(單次表達式;條件表達式;末尾循環體
{
中間循環體;
}
for ( init; condition; increment ){ statement(s);}
其中,表示式皆可以省略,但分號不可省略,因為“;”可以代表一個空語句,省略了之後語句減少,即為語句格式發生變化,則編譯器不能識別而無法進行編譯。 [1] 
for循環小括號裏第一個“;”號前為一個為不參與循環的單次表達式,其可作為某一變量的初始化賦值語句, 用來給循環控制變量賦初值; 也可用來計算其它與for循環無關但先於循環部分處理的一個表達式。
“;”號之間的條件表達式是一個關係表達式,其為循環的正式開端,當條件表達式成立時執行中間循環體。
執行的中間循環體可以為一個語句,也可以為多個語句,當中間循環體只有一個語句時,其大括號{}可以省略,執行完中間循環體後接着執行末尾循環體。
執行末尾循環體後將再次進行條件判斷,若條件還成立,則繼續重複上述循環,當條件不成立時則跳出當下for循環。 [1] 
3.for循環流程圖
for循環示意圖 for循環示意圖
執行過程為:
求解表達式1;
求解表達式2。若其值為真,則執行 for 語句中指定的內嵌語句,然後執行第3步;若表達式2值為假,則結束循環,轉到第5步;
求解表達式3;
轉回上面第2步繼續執行;
循環結束,執行 for 語句下面的語句。
執行過程中,“表達式1”只執行一次,循環是在“表達式2”“表達式3”和“內嵌語句”之間進行的。 [1] 

for循環四種運行模型

(1)三角基本模型: [2] 
三角基本模型圖示 三角基本模型圖示
示例:
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;b=c)
{
c=a;a=b;
}
printf("由大到小排序:%d,%d",a,b);
}
(2)中間循環體被省略,只剩下“;”空語句時的左右往返模型: [2]  [1] 
條件表達式——末尾循環體
示例:
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;c=a,a=b,b=c);
printf("由大到小排序:%d,%d",a,b);
}
(3)末尾循環體被省略後的上下往返模型條件表達式——中間循環體
示例:
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(;a<b;)
c=a,a=b,b=c;
printf("由大到小排序:%d,%d",a,b);
}
(4)條件表達式被省略得只剩下“;”空語句時,中間循環體或末尾循環體帶有跳出語句時的模型: [2-3] 
示例:
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d,%d",&a,&b);
for(c=a;;){break;}
if(a<b)a=b,b=c;
printf("由大到小排排序:%d,%d",a,b);
}
(3)注意事項
1.for循環中的變量可以是一個也可以是多個。
2.for循環中語句可以為語句體, 語句體外加大括號"{}"將參加循環的語句括起來。
3. for循環中的"單次表達式"、"條件表達式"和"循環體語句"都是選擇項, 即可以缺省成只剩下“;”的空語句,。

for循環其他用法

1. for循環可以有多層嵌套。示例:
#include<stdio.h>
int main(void)
{
int i,j,k;
printf("ijk\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);
return 0;
}
輸出結果為: 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
2. for循環中的變量生存週期為一次循環迭代。
#include<stdio.h>
int main(void)
{
int i;
for(i=0;i<9;i=i+1)
{
int a=i;
printf("%d\n",a);
}
return 0;
}

C語句中變量必須聲明在前才能使用,在定義語句之前使用變量是不合法的。 [4] 

for循環for循環和while的功能比較

一、循環的結構不同
for循環的表達式為:
for(單次表達式;條件表達式;末尾循環體)
{
中間循環體;
}
while循環的表達式為:while(表達式){循環體}[5]
二、執行條件的判斷方式不同
for循環執行末尾循環體後將再次進行條件判斷,若條件還成立,則繼續重複上述循環,當條件不成立時則跳出當下for循環。
while循環當滿足條件時進入循環,進入循環後,當條件不滿足時,執行完循環體內全部語句後再跳出,而不是立即跳出循環。
三、語法不同
for循環的語法為:for (變量 = 開始值;變量 <= 結束值;變量 = 變量 + 步進值) {需執行的代碼 }。
while循環的語法為:while (<條件>) {需執行的代碼 }。 [1] 
參考資料
  • 1.    譚浩強.C程序設計(第4版):清華大學出版社,2010.6
  • 2.    索明何,邢海霞,方偉駿.C語言程序設計 :機械工業出版社 ,2016.2
  • 3.    林小茶,陳昕 .C程序設計教程(第3版):清華大學出版社 ,2018.6
  • 4.    尹寶林.C程序設計導引:機械工業出版社 , 2013.5