Zanka Java for-each ali izboljšana zanka for je uvedena od J2SE 5.0. Zagotavlja alternativni pristop za prečkanje niza ali zbirke v Javi. Uporablja se predvsem za prečkanje matrike ali elementov zbirke. Prednost zanke for-each je v tem, da odpravlja možnost napak in naredi kodo bolj berljivo. Znana je kot zanka for-each, ker prečka vsak element enega za drugim.
Pomanjkljivost izboljšane zanke for je, da ne more prečkati elementov v obratnem vrstnem redu. Tukaj nimate možnosti preskočiti nobenega elementa, ker ne deluje na podlagi indeksa. Poleg tega ne morete prečkati samo lihih ali sodih elementov.
Vendar je priporočljivo uporabiti zanko Java for-each za prečkanje elementov matrike in zbirke, ker naredi kodo berljivo.
Prednosti
- Zaradi tega je koda bolj berljiva.
- Odpravlja možnost programskih napak.
Sintaksa
Sintaksa zanke Java for-each je sestavljena iz data_type s spremenljivko, ki ji sledi dvopičje (:), nato matrike ali zbirke.
for(data_type variable : array | collection){ //body of for-each loop }
Kako deluje?
Zanka Java for-each prečka matriko ali zbirko do zadnjega elementa. Za vsak element shrani element v spremenljivko in izvede telo zanke for-each.
Primer zanke za vsak: prečkanje elementov polja
//An example of Java for-each loop class ForEachExample1{ public static void main(String args[]){ //declaring an array int arr[]={12,13,14,44}; //traversing the array with for-each loop for(int i:arr){ System.out.println(i); } } }Preizkusite zdaj
Izhod:
12 12 14 44
Poglejmo še eno zanko Java for-each, kjer bomo sešteli elemente.
class ForEachExample1{ public static void main(String args[]){ int arr[]={12,13,14,44}; int total=0; for(int i:arr){ total=total+i; } System.out.println('Total: '+total); } }
Izhod:
Total: 83
Primer zanke za vsak: prečkanje elementov zbirke
import java.util.*; class ForEachExample2{ public static void main(String args[]){ //Creating a list of elements ArrayList list=new ArrayList(); list.add('vimal'); list.add('sonoo'); list.add('ratan'); //traversing the list of elements using for-each loop for(String s:list){ System.out.println(s); } } }Preizkusite zdaj
Izhod:
vimal sonoo ratanprenesite ta primer