Her bir döngü, bu durum için çalışmayacaktır. Bir diziyi başlatmak için her bir döngü için kullanamazsınız. Kodunuz:
int[] array = new int[5];
for (int i : array) {
i = 24;
}
aşağıdaki gibi bir şey çevirmek olacaktır: Bu nesneler dizisi olsaydı
int[] array = new int[5];
for (int j = 0; j < array.length; j++) {
int i = array[j];
i = 24;
}
, hala başarısız olur. Temel olarak, her biri için her girdiyi koleksiyona veya diziye, sırayla, sağladığınız değişkene atar, daha sonra birlikte çalışabilirsiniz. Değişken, bir dizi başvurusuna eşdeğer değil 'dır. Bu sadece bir değişken. Bu, her değeri her seferinde bir vererek, dizi veya Collection mevcut içeriği üzerinde döngüler için
için-her herhangi dizi veya Koleksiyon başlatmak için kullanılamaz. For-each 'deki değişken, numaralı
dizisi ya da Collection referansı için bir proxy'dir. Derleyici, "array[index]
" ile "i
" ("int i
") yerine geçmez. örneğin tarihi bir dizi, var ve bu kodu denerseniz
: Date[] array = new Date[5];
for (Date d : array) {
d = new Date();
}
böyle bir şey çevrilmiş olacaktır:
Date[] array = new Date[5];
for (int i = 0; i < array.length; i++) {
Date d = array[i];
d = new Date();
}
gördüğünüz gibi hangi edecek diziyi başlatılamıyor. Tüm boş değerleri içeren bir dizi ile sonuçlanacaksınız.
Not: Yukarıdaki kodu aldım, bir .class
dosyasına derledim ve daha sonra jad kodunu derlemek için kullandım. Bu işlem bana Sun Java derleyicisi tarafından üretilen aşağıdaki kodu verir (1.6) Yukarıdaki koddan:
int array[] = new int[5];
int ai[];
int k = (ai = array).length;
for(int j = 0; j < k; j++)
{
int i = ai[j];
i = 5;
}
Diğer soru bir kopya değil mi? Bu önce oldu. – masher