favore qualcuno può illuminarmi sulla seguente questione:Dichiarare variabile fuori Ciclo Foreach in Java
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 + " ");
}
}
}
Nel ciclo for, dichiariamo counterOne
di fuori del ciclo e usarlo all'interno del ciclo. Questo è corretto, a patto che non usiamo counterOne
dopo che il ciclo è completato.
Nel ciclo foreach, dichiariamo anche counterTwo
fuori dal ciclo e quindi lo usiamo solo nel ciclo. Tuttavia, viene generato un errore in questo caso:
"Exception in thread "main" java.lang.RuntimeException: Uncompilable codice fonte - non riesce a trovare il simbolo simbolo: Luogo counterTwo: classe package1.Loopy"
Potete aiutarmi a capire perché?
L'unica differenza tra i due è che counterOne
viene inizializzato a zero e quindi i valori vengono assegnati in modo incrementale (inferiore a 5).
Nel ciclo foreach, counterTwo
è assegnato uno per uno, ogni elemento dell'array.
Il programma funziona se facciamo questa regolazione nel secondo ciclo for: for(int counterTwo : myArray)
, mentre il primo per i lavori in entrambi i casi:
- quello esistente
for (counterOne = 0; counterOne < 5; counterOne++)
ho rinominato le variabili nel codice per scopi di leggibilità ad altri che possono incontrato questa domanda (che ho personalmente mai provato questo e lo trovo interessante). –