[英]For loop Auto increment variable
在for(int i=0; i < 5; i++)
循環中,在 printf 讀取它之前, i
不是已經增加了i++
嗎? 如果是這樣,它應該返回i=1
對嗎? 這里最初返回0
的概念是什么。
public class Application {
public static void main(String[] args) {
for(int i=0; i < 5; i++) {
System.out.printf("The value of i is: %d\n", i);
}
}
}
14.14.1。 基本的聲明
BasicForStatement: for ( [ForInit]; [Expression]; [ForUpdate] ) Statement
如果 Expression 不存在,或者它存在並且其評估(包括任何可能的拆箱)產生的值是 true,則執行包含的 Statement。 然后有一個選擇:
如果 Statement 的執行正常完成,則依次執行以下兩個步驟:
首先,如果存在 ForUpdate 部分,則表達式按從左到右的順序計算; 它們的值(如果有)將被丟棄。 如果任何表達式的求值由於某種原因突然完成,for 語句也會因為同樣的原因而突然完成; 突然完成的語句右側的任何 ForUpdate 語句表達式都不會被計算。
其次,執行另一個 for 迭代步驟。
在您的示例中,這意味着i++
將在System.out.printf
行之后執行。
不,循環增量是在循環體的末尾計算的。
行為與
for(int i=0; i < 5; ) {
System.out.printf("The value of i is: %d\n", i);
//whatever
//at the very end; just before exiting the loop
i = i + 1;
// exit the loop
}
在 for 循環中,循環僅在 i < 5 時才運行檢查。因為它是真的,所以它會允許訪問循環,其中 i 仍然為零(0)並執行循環內的語句,然后將 i 加一( i++).Where 那么增加的 i 將被考慮到條件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.