Tässä opetusohjelmassa opitaan Java for for -silmukasta ja sen eroista for loop -silmukalle esimerkkien avulla.
Java -ohjelmassa kutakin silmukkaa käytetään iteroimaan taulukoiden ja kokoelmien elementtien (kuten ArrayList) kautta. Sitä kutsutaan myös parannetuksi silmukalle.
jokaiselle Loop Sytnaxille
Jokaisen silmukan Java - syntaksi on:
for(dataType item : array) (… )
Tässä,
- array - taulukko tai kokoelma
- item - kukin taulukon / kokoelman kohde on osoitettu tälle muuttujalle
- dataType - taulukon / kokoelman tietotyyppi
Esimerkki 1: Tulosta taulukon elementit
// 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); ) ) )
Tuotos
3 9 5-5
Tässä olemme käyttäneet for-each -silmukkaa tulostaaksesi numeroryhmän jokaisen elementin yksi kerrallaan.
- Ensimmäisessä iteraatiossa alkio on 3.
- Toisessa iteraatiossa alkio on 9.
- Kolmannessa iteraatiossa alkio on 5.
- Neljännessä iteraatiossa alkio on -5.
Esimerkki 2: Taulukkoelementtien summa
// 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); ) )
Tuotos :
Summa = 19
Yllä olevassa ohjelmassa for each
silmukan suoritus näyttää:
Toisto | Muuttujat |
---|---|
1 | luku = 3 summa = 0 + 3 = 3 |
2 | luku = 4 summa = 3 + 4 = 7 |
3 | luku = 5 summa = 7 + 5 = 12 |
4 | luku = -5 summa = 12 + (-5) = 7 |
5 | luku = 0 summa = 7 + 0 = 7 |
6 | luku = 12 summa = 7 + 12 = 19 |
Kuten näemme, olemme lisänneet numeroryhmän jokaisen elementin summa-muuttujaan silmukan jokaisessa iteroinnissa.
silmukalle Vs jokaiselle silmukalle
Katsotaanpa, kuinka for-each
silmukka eroaa tavallisesta Java for loop -silmukasta.
1. Käyttäminen silmukalle
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)); ) ) )
Tuotos :
aeiou
2. Käytä jokaiselle silmukalle
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); ) ) )
Tuotos :
aeiou
Tässä molempien ohjelmien lähtö on sama. Kuitenkin for-jokainen silmukka on helpompi kirjoittaa ja ymmärtää.
Siksi jokaiselle silmukka on edullinen for- silmukalle matriisien ja kokoelmien kanssa työskenneltäessä.