Поскольку цикл for в стиле for-each может обрабатывать массив только последовательно от начала к концу, Вы можете подумать, что область его применения ограничена, но это неверно. Множество алгоритмов нуждается именно в такой обработке. Один из наиболее общих примеров — поиск. В программе, приведенной в листинге 4.5, цикл for используется для поиска значения в не отсортированном массиве. Цикл прерывается, когда искомое значение найдено.
Листинг 4.5. Поиск в массиве с помощью цикла for в стиле for - each
class Search {
public static void main(String args[]) {
int nums[] = { 6, 8, 3, 7, 5, 6, 1, 4 };
int val = 5;
boolean found = false;
// use for-each style for to search nums for val
for(int x : nums) {
if(x == val) {
found = true;
break;
}
}
if(found)
System.out.println("Value found!");
}
}
Цикл for в стиле for-each — отличный выбор для приложения из листинга 4.5, поскольку поиск в не отсортированном массиве подразумевает последовательную проверку каждого элемента (конечно, если массив отсортирован, можно применить двоичный поиск, который потребует применения цикла другого стиля). К другим типам приложений, выигрывающих от использования цикла for в стиле for-each, относятся вычисление среднего арифметического, поиск минимального или максимального значения в наборе, поиск дублирующих значений и т. д.
|