Selles õpetuses tutvume näidete abil Java-iga silmusega ja selle erinevusega silmusele.
Java -s kasutatakse iga- aasalist tsüklit massiivide ja kogude elementide (näiteks ArrayList) itereerimiseks. Seda tuntakse ka täiustatud silmusena.
iga Loop Sytnaxi jaoks
Iga silmus Java süntaks on:
for(dataType item : array) (… )
Siin,
- massiiv - massiiv või kogu
- element - kõik massiivi / kollektsiooni üksused on määratud sellele muutujale
- dataType - massiivi / kogu andmetüüp
Näide 1: massiivi elementide printimine
// 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); ) ) )
Väljund
3 9 5 -5
Siin oleme arvude massiivi iga elemendi ükshaaval printimiseks kasutanud for-each tsüklit .
- Esimesel kordusel on üksuseks 3.
- Teises iteratsioonis on üksus 9.
- Kolmandas iteratsioonis on üksuseks 5.
- Neljandas iteratsioonis on üksuseks -5.
Näide 2: Massiivielementide 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); ) )
Väljund :
Summa = 19
Ülaltoodud programmis for each
näeb tsükli käivitamine välja järgmine:
Kordus | Muutujad |
---|---|
1 | arv = 3 summa = 0 + 3 = 3 |
2 | arv = 4 summa = 3 + 4 = 7 |
3 | arv = 5 summa = 7 + 5 = 12 |
4 | arv = -5 summa = 12 + (-5) = 7 |
5 | arv = 0 summa = 7 + 0 = 7 |
6 | arv = 12 summa = 7 + 12 = 19 |
Nagu näeme, oleme lisanud arvude massiivi iga elemendi silmuse igas iteratsioonis summa muutujale.
silmusele Vs - iga silmuse jaoks
Vaatame, kuidas for-each
silmus erineb tavalisest Java for loop'ist.
1. Kasutamine silmuseks
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)); ) ) )
Väljund :
aeiou
2. Kasutades iga aasa jaoks
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); ) ) )
Väljund :
aeiou
Siin on mõlema programmi väljund sama. Kuid igale silmusele on lihtsam kirjutada ja sellest aru saada.
Sellepärast on massiivide ja kogumitega töötamisel eelistatud for-iga silmus for for silmus.