2012-06-29 24 views
5

Tôi có hai mảng:tôi có thể sử dụng đối với từng cho hai mảng có kích thước tương tự

name[] and roll[] 

Có cách nào để đi qua cả hai mảng trong một cho mỗi loop.Size của cả hai mảng vẫn như cũ.

Tôi biết cách sử dụng hai vòng cá nhân chúng ta có thể đi qua và Infact trong một cũng của nó không phải là một vấn đề lớn, nhưng tôi muốn một cái gì đó như thế này:

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

hãy làm sáng tỏ nhờ ..... Ankur

+2

Đáng đọc: [Đặc tả cho vòng lặp 'for' nâng cao] (http://docs.oracle.com/javase/specs/jls/se7/html/jls-14.html#jls-14.14.2). Đây là một tình huống mà thay vào đó, vòng lặp 'for' dựa trên chỉ số, dựa trên chỉ mục sẽ là cần thiết. –

Trả lời

7

số Bạn sẽ phải sử dụng kiểu cũ

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

Câu hỏi dành cho vòng lặp for-each không đơn giản cho vòng lặp –

+1

Tôi biết, tôi chỉ đang chỉ ra phương án thay thế (khá rõ ràng). Chỉnh sửa để làm cho rõ ràng hơn. – Keppil

4

No. Bạn không thể đi qua hai mảng cùng kích thước bằng một vòng lặp for-each.

Nếu bạn muốn lặp cả mảng trong một vòng lặp sau đó bạn sẽ phải sử dụng java truyền thống for loop

+0

Bạn không có mảng được lập chỉ mục bằng số trong java? – PeeHaa

+0

@PeeHaa: Tất nhiên Java có quyền truy cập chỉ mục vào mảng, nhưng người hỏi hỏi cụ thể về vòng lặp 'for' được tăng cường (" cho mỗi "). –

+0

K tnx (Tôi là một anh chàng PHP). Nó sẽ không thể vẫn còn khi cả hai mảng không được lập chỉ mục? – PeeHaa

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

Các Vòng lặp for...each không để lộ chỉ mục (cố ý, thực ra nó không có một chỉ mục). Bạn có thể sử dụng chỉ mục của riêng bạn nếu bạn thực sự bẻ cong nó, nhưng bạn nên sử dụng vòng lặp cũ tốt với chỉ mục.

Đây là cách bạn sẽ làm điều đó với chỉ số của riêng bạn:

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

Xem thêm this câu trả lời.

+1

Ví dụ về lý do tại sao điều này là dễ xảy ra lỗi và lý do tại sao chúng tôi cần foreach nâng cao! Bạn đã sử dụng chỉ mục và tôi - đó là loại sai lầm mà tôi tạo ra. –

+0

Bắt tốt! Ít nhất trình biên dịch sẽ cho chúng ta một tay ở đây (tôi đã gõ câu trả lời trên điện thoại của tôi). – Jeshurun

Các vấn đề liên quan