Может кто-то пожалуйста просветить меня по следующему вопросу:Объявление переменной Вне Foreach Loop в 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 + " ");
}
}
}
В для петли, мы объявляем counterOne
вне цикла и использовать его внутри цикла. Это правильно, если мы не используем counterOne
после завершения цикла.
В цикле foreach мы также объявляем counterTwo
вне цикла, а затем используем его внутри цикла. Тем не менее, ошибка возникает в этом случае:
«Исключение в потоке„основного“java.lang.RuntimeException: Uncompilable исходный код - не может найти символ символа: класс counterTwo местоположение: класс package1.Loopy»
Помогите мне понять почему?
Единственное различие между ними состоит в том, что counterOne
инициализируется нулем, а затем присваивается значения пошагово (меньше 5).
В цикле foreach counterTwo
присваивается один за другим каждый элемент массива.
Программа работает, если сделать эту настройку в секунду для цикла: for(int counterTwo : myArray)
, в то время как первый для работы в обоих случаях:
- существующий
for (counterOne = 0; counterOne < 5; counterOne++)
Я переименовал переменные в коде для целей удобочитаемости для других людей, которые могут возникнуть по этому вопросу (я лично никогда не пробовал и нашел это интересным). –