-
for循環
鎖定
- 中文名
- for循環
- 外文名
- For cycle
- 類 別
- 編程語言
- 功 能
- 循環執行
- 形 式
- for (表達式1; 表達式2; 表達式3)
目錄
- 4 和while的功能比較
- 5 不同語言的用法比較
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循環和while的功能比較
一、循環的結構不同
for(單次表達式;條件表達式;末尾循環體)
{
中間循環體;
}
while循環的表達式為:while(表達式){循環體}
二、執行條件的判斷方式不同
三、語法不同
for循環的語法為:for (變量 = 開始值;變量 <= 結束值;變量 = 變量 + 步進值) {需執行的代碼 }。
for循環不同語言的用法比較
不同語言的用法比較(Python、Java、C):
前述的用法主要是從C語言出發的,Java與Python中的 for 循環與 C 語言中的 for 循環在語法上非常相似,但在某些方面有一些細微的差別:
1. 初始化變量的作用域:
在C語言中,初始化的變量在整個函數範圍內可見,而在 Java與Python中,初始化的變量僅在 for 循環內可見。這意味着在這兩種語言中,不能在 for 循環外部訪問初始化的變量。
2. 變量類型推斷:
在 Java 10 及更高版本中,可以使用局部變量類型推斷來聲明 for 循環中的初始化變量,而在 C 中,必須顯式地聲明變量的類型。在Python中,可以不聲明變量類型,使用默認變量類型,也可以聲明特殊類型變量。
3. 遍歷方式:
在 Python 中,for 循環通常用於迭代遍歷集合類型(如列表、元組、字典等)的元素。Python 的 for 循環是一種迭代器形式,可以直接遍歷集合中的元素。而在 Java 中,傳統的 for 循環更常用於指定循環的次數,並且需要通過索引來訪問數組或列表中的元素。但是,Java 也有類似於 Python 的 for-each 循環,可以更簡潔地遍歷集合類型。C語言使用的是傳統的遍歷,需要使用到索引變量。
4. 語法:
在 Python 中,for 循環的語法非常簡潔,通常是通過 for item in iterable: 的形式進行迭代。在 Java和C語言中,傳統的 for 循環具有明確的初始化、條件和迭代部分,通常採用 for (initialization; condition; iteration) 的形式。
Python、Java 和 C 中的 for 循環示例比較:
在 Python 中:
for i in range(5): print(i)
在 Java 中:
for (int i = 0; i < 5; i++) { System.out.println(i); }
在 C 中:
int i; for (i = 0; i < 5; i++) { printf("%d\n", i); }
儘管 Python、Java 和 C 中的 for 循環都可以用於迭代,但它們在語法和用法上有一些區別,主要取決於編程語言的設計和用途。
- 參考資料
-
- 1. 譚浩強.C程序設計(第4版):清華大學出版社,2010.6
- 2. 索明何,邢海霞,方偉駿.C語言程序設計 :機械工業出版社 ,2016.2
- 3. 林小茶,陳昕 .C程序設計教程(第3版):清華大學出版社 ,2018.6
- 4. 尹寶林.C程序設計導引:機械工業出版社 , 2013.5
- 5. 關於for循環的簡單介紹 .CSDN[引用日期2023-08-26]