2012-06-29 64 views
5

我有兩個數組:我可以使用每兩個相同大小的數組

name[] and roll[] 

有沒有一種方法來遍歷數組都在爲每個loop.Size的兩個數組保持不變。

我知道使用兩個單獨的循環,我們可以在一個還它不是一個大不了的遍歷和逸岸,但我想是這樣的:

for(String n:name,int r:roll){ 
    //blah blah 
} 

請一些線索謝謝..... ANKUR

+2

值得一讀:[增強型'for'循環的規範](http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2 )。這是一種老式的,基於索引的'for'循環將需要替代的情況。 –

回答

7

號你將不得不使用老式的

for(int index = 0; index < name.length; index++) { 
    //blah blah with name[index] and roll[index] 
} 
+0

問題是針對每個循環而不是簡單的循環 –

+1

我知道,我只是指出(相當明顯的)唯一的選擇。編輯更清楚。 – Keppil

4

不能。您不能用一個for-each循環遍歷兩個相同大小的數組。

如果你想重複在一個循環中兩個數組,那麼你將不得不使用傳統的Java for

+0

難道你沒有在java數字索引數組? – PeeHaa

+0

@PeeHaa:當然Java對數組有索引訪問權限,但是提問者特別詢問了增強的for循環(「for each」)。 –

+0

K tnx(我是一個PHP的傢伙)。當兩個數組都是零索引時,它們仍然不可能嗎? – PeeHaa

2
for(int i=0,len=name.length; i<len; i++) { 
    String n = name[i]; 
    int r = roll[i]; 
} 
2

for...each循環不公開索引(有意,實際上它甚至沒有一個)。如果你真的喜歡它,你可以使用你自己的索引,但是如果使用帶索引的老舊循環,會更好。

這裏是你如何用自己的指數做到這一點:

{ 
    int index = 0; 
    for(String name : names) { 
     // roll[index]; 
     ++index 
    } 
} 

另見this答案。

+1

爲什麼這很容易出錯以及爲什麼我們需要增強的foreach的例子!你已經使用了索引和我 - 這是我犯的那種錯誤。 –

+0

好趕上!至少編譯器會給我們一個這裏的手(我在我的手機上輸入了答案)。 – Jeshurun

相關問題