freeCodeCamp/guide/russian/java/loops/for-each-loop/index.md

85 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
title: For Each Loop
localeTitle: Для каждого цикла
---
# Для каждого цикла
Также называемый расширенным циклом `for` , это чрезвычайно полезный и простой способ перебора каждого элемента в коллекции, массиве или любом объекте, который реализует интерфейс `Iterable` .
```java
for (object : iterable)
{
// Statements
}
```
Цикл читается как «для каждого элемента в `iterable` (может быть массив, собираемый и т. Д.)». Тип `object` должен соответствовать типу элемента `iterable` .
```java
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for (int numbers : number_list)
{
System.out.print(numbers + " ");
// Iterated 10 times, numbers 0,1,2...9
}
```
Вывод:
```
0 1 2 3 4 5 6 7 8 9
```
: ракета: [Код запуска](https://repl.it/CJYs/0)
Сравнивая это с традиционными `for` петель:
```java
int[] number_list = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for(int i=0;i < number_list.length;i++)
{
System.out.print(number_list[i]+" ");
// Iterated 10 times, numbers 0,1,2...9
}
```
Вывод:
```
0 1 2 3 4 5 6 7 8 9
```
: ракета: [Код запуска](https://repl.it/NJfG/0)
Однако обе части фрагментов кода выполняют одну и ту же работу, однако, очевидно, что для каждой петли есть преимущества в упрощении итерации и доступа элементов коллекции (массива в нашем случае).
С улучшенными циклами циклов нам больше не нужно упоминать начальные и конечные точки цикла, что уменьшает ошибки OutofBounds. Потребность в счетчиках контуров и ручном индексировании удаляется, а читаемость кода улучшается.
Важно отметить, что внесение изменений в переменную итерации для расширенных циклов в цикле не приводит к изменениям исходных элементов коллекции.
Улучшенные для циклов также могут использоваться с многомерными массивами или другими наборами Java. Пример его использования с массивами с несколькими расширениями показан ниже:
```java
int number_list_new[][]={ { 0, 1, 2},
{ 3, 4, 5},
{ 6, 7, 8} };
// Because 2d arrays are implemented as "arrays of arrays",the first iteration variable iterates
// through 3 such arrays(that is, the 3 rows of testarr[][])
for(int i[] : number_list_new)
{
for(int j : i){
System.out.print(j+" ");
}
}
```
Вывод:
```
0 1 2 3 4 5 6 7 8
```
: ракета: [Код запуска](https://repl.it/NJhP/0)
В приведенных выше фрагментах кода `number_list` является массивом. Если вы не знаете, что это такое, не беспокойтесь об этом. Массив - это контейнерный объект, который содержит фиксированное число значений одного типа, но больше об этом позже.