Java для автоматизаторов
  • Introduction
  • Java. Введение
    • Java как язык и платформа
    • Установка и настройка
  • Язык Java. Основы
    • Hello World
    • Переменные
    • Типы данных
    • Строки
    • Циклы "while" / "do ... while"
    • Циклы "for"
    • Условный оператор "if / if ... else"
    • Условный оператор "switch"
    • Массивы
    • Задания к главе
  • ООП в Java
    • Классы и объекты
    • Методы
    • Свойства
    • Параметры методов
    • Ключевое слово this
    • Конструктор
    • Модификаторы static и final
    • StringBuffer
    • Метод toString()
    • Метод equals()
    • Наследование
    • Пакеты
    • Интерфейсы
    • Модификаторы Public, Private и Protected
    • Полиморфизм
    • Инкапсуляция
    • Использование обобщений
    • Generics and Wildcards
    • Анонимные классы
    • Исключения
    • Множественные исключения
    • Абстрактные классы
    • Вложенные классы
    • Тип Enum
    • Задания к главе
  • Коллекции
    • ArrayList
    • Linked Lists
    • HashMap
    • Sets (Множества)
    • Sorted Maps
    • Задание порядка в множестве ( natural ordering )
    • Очередь (Queue)
    • Использование итераторов
    • Создание объектов, реализующих интерфейс Iterable
    • Задания к главе
  • Стиль написания кода
    • Структура файла
    • Файлы-исходники
    • Открывающие комментарии
    • Сведения о пакете и импорте
    • Объявление классов и интерфейсов
    • Длина строки
    • Переносы строк
    • Переносы в объявлении методов
    • Переносы в операторе if
    • Переносы в тернарных операциях
    • Виды комментариев
    • Блочные комментарии
    • Однострочные комментарии
    • Комментарии в конце строки
    • Объявления (Декларации)
    • Операторы
    • Пропуски
    • Конвенция именования
    • Задания к главе
  • Работа с файлами
    • Работа с текстовыми файлами
    • Работа с XML файлами
    • Работа с JSON файлами
    • Property-файлы
    • Задания к главе
  • Log4j - система логирования сообщений в Java
    • Начало работы
    • Конфигурационные файлы
    • Стандартные аппендеры
    • Задания к главе
  • Юнит тестирование
    • JUnit vs TestNG. Основные аннотации
    • JUnit vs TestNG. Примеры тестов
      • Exception тесты
      • Ignore тесты
      • Тест с таймаутом
      • Тест сьюты
      • Параметризованные тесты
      • Зависимые тесты
      • Многопоточность
    • Asserts
    • Использование "заглушек" (Mocks)
  • Build инструменты
    • Build инструменты
    • Примеры конфигураций
  • Системы контроля версий. Git
    • Системы контроля версий. Git
    • Git. Установка
    • Git. Основы
    • Git. Основные команды
      • Настройка
      • Работа с репозиторием
      • Работа с удаленным сервером
      • Работа с ветками
Powered by GitBook
On this page
  1. Язык Java. Основы

Циклы "for"

Оператор for позволяет последовательно пройти ряд значений. Его называют циклом for, поскольку подобно оператору while, он также повторяет выполнение блока кода до тех пор, пока не будет удовлетворено заданное условие.

for (initialization; termination; increment) {
    ...
    ...
}

Здесь нужно иметь в виду, что:

  • выражение инициализации выполняется однократно в начале цикла

  • как только выражение уничтожения возвращает false, выполнение цикла прекращается

  • выражение инкрементирования выполняется после каждого выполнения блока кода

class MyClass {
    public static void main(String[] args){
        for(int i = 1; i < 11; ++i){
            System.out.println(i);
        }
    }
}

Обратите внимание, что объявление переменной i происходит прямо в выражении инициализации. Область видимости этой переменной расширяется на весь блок for, поэтому мы можем использовать ее в выражениях уничтожения и инкрементирования, а также непосредственно в блоке кода.

Если переменная не нужна вне блока for, лучше всего объявлять ее именно в выражении инициализации. В качестве имени переменной-счетчика чаще всего выбирают i, j, k...

С помощью for можно также создавать бесконечные циклы:

for ( ; ; ) {
    ...
    ...
}

Кроме того цикл for может использоваться для прохода через все значения объектов типа Collection (коллекции) и array (массивы)

class EnhancedForDemo {
    public static void main(String[] args){
        int[] numbers = {1,2,3,4,5,6,7,8,9,10};
        for (int item : numbers) {
            System.out.println(item);
        }
    }
}

Вопрос 1.

Чем концептуально отличается цикл for от цикла while?

Вопрос 2.

Как можно использовать переменную, объявленную в выражении инициализации, внутри цикла?

Вопрос 3.

Почему лучше объявлять переменную в выражении инициализации?

PreviousЦиклы "while" / "do ... while"NextУсловный оператор "if / if ... else"

Last updated 6 years ago