-
for循環
鎖定
- 中文名
- for循環
- 外文名
- For cycle
- 類 別
- 編程語言
- 功 能
- 循環執行
- 形 式
- for (表達式1; 表達式2; 表達式3)
目錄
- 1 for循環語法
- 2 四種運行模型
- 3 其他用法
- 4 for循環和while的功能比較
for循環for循環語法
1.語句最簡形式為:
for( ; ; )
2.一般形式為:
{
中間循環體;
}
for ( init; condition; increment ){ statement(s);}
for循環小括號裏第一個“;”號前為一個為不參與循環的單次表達式,其可作為某一變量的初始化賦值語句, 用來給循環控制變量賦初值; 也可用來計算其它與for循環無關但先於循環部分處理的一個表達式。
執行的中間循環體可以為一個語句,也可以為多個語句,當中間循環體只有一個語句時,其大括號{}可以省略,執行完中間循環體後接着執行末尾循環體。
3.for循環流程圖
執行過程為:
求解表達式1;
求解表達式2。若其值為真,則執行 for 語句中指定的內嵌語句,然後執行第3步;若表達式2值為假,則結束循環,轉到第5步;
求解表達式3;
轉回上面第2步繼續執行;
循環結束,執行 for 語句下面的語句。
for循環四種運行模型
示例:
#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); }
條件表達式——末尾循環體
示例:
#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); }
示例:
#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; }
for循環for循環和while的功能比較
一、循環的結構不同
for(單次表達式;條件表達式;末尾循環體)
{
中間循環體;
}
while循環的表達式為:while(表達式){循環體}[5]
二、執行條件的判斷方式不同
for循環執行末尾循環體後將再次進行條件判斷,若條件還成立,則繼續重複上述循環,當條件不成立時則跳出當下for循環。
while循環當滿足條件時進入循環,進入循環後,當條件不滿足時,執行完循環體內全部語句後再跳出,而不是立即跳出循環。
三、語法不同
for循環的語法為:for (變量 = 開始值;變量 <= 結束值;變量 = 變量 + 步進值) {需執行的代碼 }。