,所以我知道,你可以有一個每個參數中的多個語句for循環,例如:Java進行循環終止參數
for(int i=0, int j=0; i<10 , j<14; i++, j=j+2){}
,但作爲一個「和」聲明處理的第二個參數或「或者」聲明?當「j」變得大於14時它會停止,還是繼續下去,直到「i」變得大於10?
,所以我知道,你可以有一個每個參數中的多個語句for循環,例如:Java進行循環終止參數
for(int i=0, int j=0; i<10 , j<14; i++, j=j+2){}
,但作爲一個「和」聲明處理的第二個參數或「或者」聲明?當「j」變得大於14時它會停止,還是繼續下去,直到「i」變得大於10?
這不會編譯。第二個參數不能有逗號分隔列表。這將編譯:
for(int i=0, j=0; i<10 && j<14; i++, j=j+2){}
這對我來說更有意義。非常感謝! – 1234567power
終止參數必須是一個邏輯運算符,i<10 && j<14
是可以接受的,i<10 , j<14
不會。
這將清除一切。運行程序
i和j是2個變量,它們可以使用,具體取決於您要如何使用它。 如果你不改變j的值,那麼它可以用作終止符。
public class TestProgram {
public static void main(String[] args){
for (int i = 0, j = 1, k = 2; i < 5; i++) {
System.out.println("I : " + i + ",j : " + j + ", k : " + k);
}
/*
* Please note that the variables which are declared, should be of same
* type as in this example int.
*/
// THIS WILL NOT COMPILE
// for(int i=0, float j; i < 5; i++);
}
這根本不是答案**。 –
該程序解釋了他如何在for循環中使用多個參數。第二個參數可以作爲終止條件 –
@LuiggiMendoza你甚至可以運行我的程序! –
從JLS 14.14.1 The basic for
Statement:
BasicForStatement:
for ([ForInit] ; [Expression] ; [ForUpdate]) Statement
第一部分時,[ForInit]必須是一個變量的聲明或一組的相同的變量類型:
如果ForInit代碼是語句表達式的列表(第14.8節),則表達式按從左到右的順序進行評估;它們的值(如果有的話)被丟棄。
的第二部分,[表達式]必須是boolean
:
的表達必須有類型
boolean
或Boolean
或編譯時錯誤發生
因此,您當前的for
循環聲明未能滿足這些條件。讓我們來看看爲什麼:
for(
int i=0, int j=0; //you cannot declare a list of variables like this
//you can test this by moving this piece of code
//out of the for loop
i<10 , j<14; //this expression doesn't return a boolean nor a Boolean
i++, j=j+2 //this one is right
) {
//...
}
所以,正確的方式來聲明這個for
循環將是:
for(
int i=0, j=0;
i<10 && j<14;
i++, j=j+2
) {
//...
}
其中,在單一的控制線爲:
for(int i=0, j=0; i<10 && j<14; i++, j=j+2) {
//...
}
酷!我會盡量在下次回答時更加詳細。 –
您的代碼段做不編譯。 [docs](https://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html)是一個很好的閱讀。 –
第二個參數必須是條件的,'i <10,j <14'不是條件的。 –
雖然這種事情發生在C中,但不是Java。在Java中,您將收到編譯時錯誤。然而,在C語言中,只有逗號分隔列表中的最右邊的表達式「計數」,儘管所有都被計算... – BadZen