原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/16/2820842.html
英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html
for語句提供了一個緊湊的方式來遍曆一個範圍值。程式經常引用為"for迴圈",因為它反覆迴圈,直到滿足特定的條件。for語句的通常形式,表述如下:
for (initialization; termination; increment) { statement(s)}
使用該版本的for語句時,要記住:
- 初始化語句初始化迴圈;它執行一次作為迴圈的開始。
- 當結束運算式計算為false,迴圈結束。
- 自增運算式會在迴圈的每次迭代執行;該運算式在增量器,遞減值,是完全可以接受的,
接下來的程式ForDemo,使用for語句的通用形式,輸出1到10到標準輸出:
class ForDemo { public static void main(String[] args){ for(int i=1; i<11; i++){ System.out.println("Count is: " + i); } }}
程式輸出是:
Count is: 1Count is: 2Count is: 3Count is: 4Count is: 5Count is: 6Count is: 7Count is: 8Count is: 9Count is: 10
注意:代碼在初始設定式聲明變數。該變數的存活範圍,從它的聲明到for語句的塊的結束。所以,它通用用在結束運算式和自增運算式。如果for語句的控制,不需要迴圈外部的變數,最好是在初始化塊聲明變數。名稱為i,j,k經常用來控制for迴圈;在初始設定式聲明他們,限制他們的生命週期,減少錯誤。
for迴圈的三個運算式都是可選的,一個無限迴圈,可以這麼寫:
// infinite loopfor ( ; ; ) { // your code goes here}
for語句還可以用來迭代 Collections and arrays,這個形式有時被稱為for語句的theenhanced,可以用來讓你的迴圈更加緊湊,易於閱讀。為了說明這一點,考慮下面的陣列,它擁有數字1到10:
int[] numbers = {1,2,3,4,5,6,7,8,9,10};
下面的程式EnhancedForDemo,使用增強for遍曆數組:
class EnhancedForDemo { public static void main(String[] args){ int[] numbers = {1,2,3,4,5,6,7,8,9,10}; for (int item : numbers) { System.out.println("Count is: " + item); } }}
這個例子,變數item持有數字數組的當前值。程式的輸出結果和之前一樣:
Count is: 1Count is: 2Count is: 3Count is: 4Count is: 5Count is: 6Count is: 7Count is: 8Count is: 9Count is: 10
儘可能使用這種形式的for替代傳統的for形式。