Цикл Java

Оператор for-loop в Java обеспечивает компактный способ итерации по массивам или типам коллекций с использованием переменной-счетчика, которая увеличивается или уменьшается после каждой итерации. Программисты часто называют его традиционным «циклом for» из-за того, как он многократно повторяется до тех пор, пока не будет выполнено определенное условие.

Обратите внимание, что Java также предоставляет более лаконичный способ итерации по массивам или коллекциям с использованием улучшенного цикла for-each.

1. Синтаксис

Общую форму цикла for можно выразить следующим образом:

for(initialization; termination; increment) {statement(s);}
  • Выражение инициализации инициализирует цикл; оно выполняется один раз при начале цикла.
  • выражение завершения обеспечивает условие, если оно оценивается как ложное, цикл завершается.
  • Выражение инкремента вызывается после каждой итерации; вполне допустимо, чтобы это выражение увеличивало или уменьшало переменную-счетчик.
  • операторы — это инструкции, выполняемые в каждой итерации цикла. Мы можем получить доступ к текущему значению переменной счетчика в этом блоке.

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

2. Пример цикла For в Java

В следующей программе мы итерируем по массиву значений int. Массив содержит 5 элементов, поэтому цикл будет итерироваться 5 раз, по одному разу для каждого значения в массиве.

int[] array = new int[] {0, 1, 2, 3, 4};for(int i = 0; i < array.length; i++) {System.out.format("Value at index %d is %d \n", i, array[i]);}

Вывод программы.

Value at index 0 is 0Value at index 1 is 1Value at index 2 is 2Value at index 3 is 3Value at index 4 is 4 
Java For Loop0

Выполнение потоков цикла for, подобных этому:

  • Сначала выполняется «int i = 0», который объявляет целочисленную переменную i и инициализирует ее значением 0.
  • Затем вычисляется condition-expression(i < array.length). Текущее значение I равно 0, поэтому выражение впервые вычисляется как true. Теперь выполняется оператор, связанный с оператором for-loop, который выводит вывод в консоль.
  • Наконец, выполняется i++, который увеличивает значение i на 1. В этот момент значение i становится равным 1.
  • Условное выражение снова оценивается как истинное, и выполняется оператор печати.
  • Этот процесс продолжается до тех пор, пока значение i не станет равным 4, и не будет выполнен оператор печати.
  • После этого i++ устанавливает значение num равным 5, а выражение i < array.length возвращает false и останавливает выполнение, завершая цикл.

3. Операторы инициализации, завершения и приращения являются необязательными.

Как упоминалось в синтаксисе, инициализация, завершение и приращение являются необязательными частями, которыми можно управлять из других мест. Или цикл for может не иметь всех из них.

Например, мы можем переписать предыдущий пример следующим образом. Мы вынесли инициализацию счетчика перед циклом. Мы переместили инкремент счетчика и операторы завершения внутрь тела цикла. Операторы такие же, как и в предыдущей версии.

int[] array = new int[]{0, 1, 2, 3, 4};int i = 0;for( ; ; ) {System.out.format("Value at index %d is %d \n", i, array[i]);i++;if(i >= array.length) {break;}}

Вывод программы такой же, как и в предыдущей версии.

Value at index 0 is 0Value at index 1 is 1Value at index 2 is 2Value at index 3 is 3Value at index 4 is 4 

Более того, можно написать бесконечный цикл вообще без этих частей:

for(;;) {// do something}

4. Вложенные циклы

Можно вложить один for-loop в другой for-loop. Такой подход используется для обработки многомерных структур, таких как таблицы(матрицы), кубы данных и т. д.

В качестве примера следующий код выводит таблицу умножения чисел от 1 до 9(включительно).

for(int i = 1; i < 10; i++) {for(int j = 1; j < 10; j++) {System.out.print(i * j + "\t");}System.out.println();}

Вывод программы:

1 2 3 4 5 6 7 8 92 4 6 8 10 12 14 16 183 6 9 12 15 18 21 24 274 8 12 16 20 24 28 32 365 10 15 20 25 30 35 40 456 12 18 24 30 36 42 48 547 14 21 28 35 42 49 56 638 16 24 32 40 48 56 64 729 18 27 36 45 54 63 72 81 
Прокрутить вверх