Czy ktoś mógłby mnie oświecić o następującej treści:Deklarowanie zmiennej Poza Foreach Loop w Javie
public class Loopy {
public static void main(String[] args)
{
int[] myArray = {7, 6, 5, 4, 3, 2, 1};
int counterOne;
for (counterOne = 0; counterOne < 5; counterOne++) {
System.out.println(counterOne + " ");
}
System.out.println(counterOne + " ");
int counterTwo = 0;
for (counterTwo : myArray) {
System.out.println(counterTwo + " ");
}
}
}
W pętli for, deklarujemy counterOne
zewnątrz pętli i użyć go wewnątrz pętli. Jest to poprawne, o ile nie używamy counterOne
po zakończeniu pętli.
W pętli foreach deklarujemy również counterTwo
poza pętlą, a następnie używamy jej wewnątrz pętli tylko. Jednak błąd jest generowany w tym przypadku:
„Wyjątek w wątku«głównym»java.lang.RuntimeException: Uncompilable kodu źródło - nie można odnaleźć symbol symbol: lokalizacja klasa counterTwo: Klasa package1.Loopy”
Czy możesz mi pomóc zrozumieć dlaczego?
Jedyna różnica między nimi polega na tym, że counterOne
jest inicjowane na zero, a następnie przypisywane są wartości przyrostowo (mniejsze niż 5).
W pętli foreach counterTwo
jest przypisywany jeden po drugim, każdy element tablicy.
Program działa, jeśli robimy to korekty w drugiej pętli for: for(int counterTwo : myArray)
, zaś pierwszy dla prowadzenia prac w obu przypadkach:
- istniejący
for (counterOne = 0; counterOne < 5; counterOne++)
I przemianowany zmiennych w kodzie dla celów czytelności innym, którzy mogą zetknąć się z tym pytaniem (ja osobiście mam nigdy nie próbowałem tego i uważałem to za interesujące). –