В този урок ще научим за Java за всеки цикъл и неговата разлика с for loop с помощта на примери.
В Java цикълът за всеки се използва за итерация през елементи на масиви и колекции (като ArrayList). Известен е и като подобрен цикъл за.
за всеки цикъл Sytnax
Синтаксисът на Java за всеки цикъл е:
for(dataType item : array) (… )
Тук,
- масив - масив или колекция
- item - всеки елемент от масив / колекция се присвоява на тази променлива
- dataType - типът данни на масива / колекцията
Пример 1: Печат на елементи от масив
// print array elements class Main ( public static void main(String() args) ( // create an array int() numbers = (3, 9, 5, -5); // for each loop for (int number: numbers) ( System.out.println(number); ) ) )
Изход
3 9 5 -5
Тук използвахме цикъла за всеки за отпечатване на всеки елемент от масива с числа един по един.
- В първата итерация елементът ще бъде 3.
- Във втората итерация елементът ще бъде 9.
- В третата итерация елементът ще бъде 5.
- В четвъртата итерация елементът ще бъде -5.
Пример 2: Сума от елементи на масива
// Calculate the sum of all elements of an array class Main ( public static void main(String() args) ( // an array of numbers int() numbers = (3, 4, 5, -5, 0, 12); int sum = 0; // iterating through each element of the array for (int number: numbers) ( sum += number; ) System.out.println("Sum = " + sum); ) )
Изход :
Сума = 19
В горната програма изпълнението на for each
цикъла изглежда като:
Повторение | Променливи |
---|---|
1 | число = 3 сума = 0 + 3 = 3 |
2 | число = 4 сума = 3 + 4 = 7 |
3 | число = 5 сума = 7 + 5 = 12 |
4 | число = -5 сума = 12 + (-5) = 7 |
5 | число = 0 сума = 7 + 0 = 7 |
6 | число = 12 сума = 7 + 12 = 19 |
Както виждаме, добавихме всеки елемент от масива с числа към променливата сума във всяка итерация на цикъла.
за цикъл Vs за всеки цикъл
Нека да видим как един for-each
цикъл се различава от обикновения цикъл Java for.
1. Използване на цикъл for
class Main ( public static void main(String() args) ( char() vowels = ('a', 'e', 'i', 'o', 'u'); // iterating through an array using a for loop for (int i = 0; i < vowels.length; ++ i) ( System.out.println(vowels(i)); ) ) )
Изход :
aeiou
2. Използване на за всеки цикъл
class Main ( public static void main(String() args) ( char() vowels = ('a', 'e', 'i', 'o', 'u'); // iterating through an array using the for-each loop for (char item: vowels) ( System.out.println(item); ) ) )
Изход :
aeiou
Тук изходът на двете програми е еднакъв. Въпреки това, цикълът за всеки е по-лесен за писане и разбиране.
Ето защо за всеки- линия е за предпочитане пред по контур при работа с масиви и колекции.