committed by
Gregory Gubarev
parent
17be7d754b
commit
9078d19358
@ -1,10 +1,10 @@
|
||||
---
|
||||
title: For Each Loop
|
||||
localeTitle: Для каждого цикла
|
||||
localeTitle: Цикл For Each
|
||||
---
|
||||
# Для каждого цикла
|
||||
# Цикл For Each
|
||||
|
||||
Также называемый расширенным циклом `for` , это чрезвычайно полезный и простой способ перебора каждого элемента в коллекции, массиве или любом объекте, который реализует интерфейс `Iterable` .
|
||||
Также называемый расширением цикла `for` , это чрезвычайно полезный и простой способ перебора каждого элемента в коллекции, массиве или любом объекте, который реализует интерфейс `Iterable` .
|
||||
|
||||
```java
|
||||
for (object : iterable)
|
||||
@ -13,7 +13,7 @@ for (object : iterable)
|
||||
}
|
||||
```
|
||||
|
||||
Цикл читается как «для каждого элемента в `iterable` (может быть массив, собираемый и т. Д.)». Тип `object` должен соответствовать типу элемента `iterable` .
|
||||
Цикл интерпретируется как «для каждого элемента в `iterable` (может быть массив, коллекция и т. д.)». Тип `object` должен соответствовать типу элемента `iterable` .
|
||||
|
||||
```java
|
||||
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
@ -30,9 +30,9 @@ int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
0 1 2 3 4 5 6 7 8 9
|
||||
```
|
||||
|
||||
: ракета: [Код запуска](https://repl.it/CJYs/0)
|
||||
: запустить: [код примера](https://repl.it/CJYs/0)
|
||||
|
||||
Сравнивая это с традиционными `for` петель:
|
||||
Сравнивая это с традиционными циклом `for`:
|
||||
|
||||
```java
|
||||
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
@ -50,15 +50,15 @@ int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
|
||||
0 1 2 3 4 5 6 7 8 9
|
||||
```
|
||||
|
||||
: ракета: [Код запуска](https://repl.it/NJfG/0)
|
||||
: запустить: [код примера](https://repl.it/NJfG/0)
|
||||
|
||||
Однако обе части фрагментов кода выполняют одну и ту же работу, однако, очевидно, что для каждой петли есть преимущества в упрощении итерации и доступа элементов коллекции (массива в нашем случае).
|
||||
Хотя оба фрагмента кода выполняют одну и ту же работу, очевидно, что у цикла for each есть преимущества в упрощении итерации и доступа к элементам коллекции (массива в нашем случае).
|
||||
|
||||
С улучшенными циклами циклов нам больше не нужно упоминать начальные и конечные точки цикла, что уменьшает ошибки OutofBounds. Потребность в счетчиках контуров и ручном индексировании удаляется, а читаемость кода улучшается.
|
||||
Когда мы использем улучшенный цикл, нам не нужно упоминать начальные и конечные точки цикла, что уменьшает ошибки OutofBounds. Потребность в ручном индексировании удаляется, а читаемость кода улучшается.
|
||||
|
||||
Важно отметить, что внесение изменений в переменную итерации для расширенных циклов в цикле не приводит к изменениям исходных элементов коллекции.
|
||||
|
||||
Улучшенные для циклов также могут использоваться с многомерными массивами или другими наборами Java. Пример его использования с массивами с несколькими расширениями показан ниже:
|
||||
Улучшенные 'for' циклы также могут использоваться с многомерными массивами или другими коллекциями в Java. Пример его использования с многомерными массивами показан ниже:
|
||||
|
||||
```java
|
||||
int number_list_new[][]={ { 0, 1, 2},
|
||||
@ -80,6 +80,6 @@ int number_list_new[][]={ { 0, 1, 2},
|
||||
0 1 2 3 4 5 6 7 8
|
||||
```
|
||||
|
||||
: ракета: [Код запуска](https://repl.it/NJhP/0)
|
||||
: запустить: [код примера](https://repl.it/NJhP/0)
|
||||
|
||||
В приведенных выше фрагментах кода `number_list` является массивом. Если вы не знаете, что это такое, не беспокойтесь об этом. Массив - это контейнерный объект, который содержит фиксированное число значений одного типа, но больше об этом позже.
|
||||
В приведенных выше фрагментах кода `number_list` является массивом. Если вы не знаете, что это такое, не беспокойтесь об этом. Массив - это контейнерный объект, который содержит фиксированное число значений одного типа, но больше об этом позже.
|
||||
|
Reference in New Issue
Block a user