2011-05-24 66 views
37

我在搜索「如何在for循環中給出多個條件?」但是沒有直接的答案。在for循環中給出多個條件

經過一番研究,我找到了正確的方法。條件不能用逗號(,)或分號(;)分隔。我們可以使用運算符將​​兩個條件結合在一起。

爲(初始化;條件1 & &條件2;增量)

例子:

for(int j= 0; j < 6 && j < ((int)abc[j] & 0xff) ; j++) 
{ 
// 
} 

希望這有助於新的Java開發人員。

+5

而你的問題是? – trojanfoe 2011-05-24 06:46:05

+3

JavaBits,你的帖子不是問題,說實話,我會避免for循環中的複雜表達式 - 更好地保持你的代碼簡單易讀。 – 2011-05-24 06:48:30

+0

這只是爲了通知。 – JavaBits 2011-05-24 06:50:31

回答

32

您還可以使用「或」操作符,

for(int i = 0 ; i < 100 || someOtherCondition() ; i++) { 
    ... 
} 
+0

你是對的。 – JavaBits 2011-05-24 07:03:30

+0

它的工作原理,謝謝! – dark 2014-08-04 12:03:47

0

如果你喜歡一個代碼與一個漂亮的外觀,你可以做一休:如果你想這樣做,爲什麼

for(int j = 0; ; j++){ 
    if(j < 6 
    && j < ((int) abc[j] & 0xff)){ 
     break; 
    } 

    // Put your code here 
} 
+0

實際上,我不認爲這個版本看起來比for(...)構造中的表達式更漂亮。 – 2011-05-24 07:03:18

+0

這對複雜情況有更好的觀察。 – 2011-05-24 07:16:55

0

不要一會兒,爲了安心? :P不,但我真的不知道,似乎有點不錯,所以謝謝,很高興知道!

4

可以在for循環中使用多個變量和條件,如下例所示。

for (int i = 1, j = 100; i <= 100 && j > 0; i = i - 1 , j = j-1) { 
    System.out.println("Inside For Loop"); 
} 
0

您還可以用單一方法調用來代替複雜的條件,使其在維護中更少惡。

13

基本for語句包括

  • 0..N初始化語句(ForInit
  • 計算結果爲 booleanBooleanForStatement)和
  • 0..N
  • 0..1表達式語句更新語句(ForUpdate

如果您需要多個條件建立你ForStatement,然後使用標準邏輯運算符(&&|||,...) - 我建議使用一個專用的方法,如果它得到複雜:

for (int i = 0, j = 0; isMatrixElement(i,j,myArray); i++, j++) { 
    // ... 
} 

private boolean isMatrixElement(i,j,myArray) { 
    return (i < myArray.length) && (j < myArray[i].length); // stupid dummy code! 
} 
+0

所以很尷尬,我不知道多個語句被允許在java中的初始化和更新for循環。這些東西是否存在,但應該非常謹慎地使用?可能是因爲可讀性 – 2016-02-03 05:51:05