KODO STRUKTŪRA
Java masyvų elementų perėjimas ciklais
Ciklai leidžia nuosekliai apdoroti kiekvieną masyvo elementą. Įprastas for suteikia elemento indeksą, o for-each leidžia patogiai dirbti tiesiogiai su reikšmėmis.
Masyvo perėjimas su for
Skaitiklis pradedamas nuo 0, nes toks yra pirmojo elemento indeksas. Sąlygoje naudojama length, todėl ciklas sustoja prieš pasiekdamas neegzistuojantį indeksą.
String[] vaisiai = {
"Obuolys", "Kriaušė", "Bananas", "Apelsinas"
};
for (int i = 0; i < vaisiai.length; i++) {
System.out.println(vaisiai[i]);
}Obuolys
Kriaušė
Bananas
Apelsinas
- Masyve
vaisiaiyra keturi elementai, todėl jolengthreikšmė yra4. - Skaitiklis
iprasideda nuo0, nes tai yra pirmojo masyvo elemento indeksas. vaisiai[i]kiekvieną kartą pasiekia kitą elementą: indeksus0, 1, 2, 3.println()kiekvieną vaisių parodo naujoje konsolės eilutėje.- Kai
itampa4, sąlyga4 < 4yra klaidinga ir ciklas baigiasi.
i < masyvas.length.Paskutinio elemento indeksas yra length - 1, todėl operatorius <= sukeltų indekso ribų klaidą.
Skaitinių elementų skaitymas
Ta pati ciklo struktūra gali parodyti keturių dienų temperatūras:
int[] temperaturos = {21, 24, 19, 27};
for (int i = 0; i < temperaturos.length; i++) {
System.out.println("Temperatūra: " + temperaturos[i] + " °C");
}Temperatūra: 21 °C
Temperatūra: 24 °C
Temperatūra: 19 °C
Temperatūra: 27 °C
- Masyvas
temperaturossaugo keturis sveikuosius skaičius. - Ciklas paeiliui naudoja indeksus nuo
0iki3. - Per kiekvieną kartojimą
temperaturos[i]grąžina vienos dienos temperatūrą. - Java sujungia tekstą, skaičių ir simbolį °C, tada parodo visą eilutę konsolėje.
Masyvo elementų sumos skaičiavimas
Jonas turi keturis pirkinius. Kintamasis už ciklo ribų gali sukaupti bendrą jų kainą:
int[] kainos = {3, 4, 2, 5};
int bendraKaina = 0;
for (int i = 0; i < kainos.length; i++) {
bendraKaina += kainos[i];
}
System.out.println("Bendra kaina: " + bendraKaina + " eurų");Bendra kaina: 14 eurų
- Masyve
kainossaugomos reikšmės3, 4, 2, 5. - Kintamasis
bendraKainapradžioje yra0. - Per kiekvieną kartojimą
kainos[i]paima kitą kainą. bendraKaina += kainos[i]ją prideda prie ankstesnės sumos. Suma auga taip:3, 7, 9, 14.- Pasibaigus ciklui, konsolėje parodoma galutinė suma 14 eurų.
Masyvo perėjimas su for-each
Kai reikalingos tik elementų reikšmės, galima atsisakyti skaitiklio ir indekso:
for (elementoTipas elementas : masyvas) {
// Veiksmas su elementu
}Jis tik parodo vietas, kuriose reikia įrašyti elemento tipą, pavadinimą ir tikrą masyvą.
Dvitaškį galima skaityti kaip „kiekvienam elementui iš masyvo“:
String[] miestai = {"Vilnius", "Kaunas", "Klaipėda"};
for (String miestas : miestai) {
System.out.println("Miestas: " + miestas);
}Miestas: Vilnius
Miestas: Kaunas
Miestas: Klaipėda
- Masyvas
miestaisaugo tris Lietuvos miestų pavadinimus. - Pirmą kartą kintamasis
miestasgauna reikšmę Vilnius. - Kitais kartais jis gauna Kaunas ir Klaipėda.
for-eachpats sustoja po paskutinio elemento, todėl nereikia rašyti indekso arlength.
Kai reikalingas elemento indeksas
for-each nepateikia dabartinės pozicijos. Jei reikia išvesti vietos numerį arba kitaip naudoti indeksą, rinkis įprastą for:
String[] vardai = {"Asta", "Mantas", "Ona", "Darius"};
for (int i = 0; i < vardai.length; i++) {
System.out.println("Numeris " + (i + 1) + ": " + vardai[i]);
}Numeris 1: Asta
Numeris 2: Mantas
Numeris 3: Ona
Numeris 4: Darius
- Java techniniai indeksai yra
0, 1, 2, 3. - Žmonėms sąrašus įprasta numeruoti nuo
1, todėl rodomam numeriui apskaičiuoti naudojamei + 1. - Kai
iyra0, vartotojui parodomas numeris1ir pirmasis vardas Asta. - Taip vienu metu galime naudoti ir elemento poziciją, ir jo reikšmę.
Masyvo elementų keitimas cikle
Trijų dienų žingsnių skaičius užrašytas tūkstančiais. Norint reikšmes paversti tikrais skaičiais, reikalingas jų indeksas:
int[] zingsniaiTukstanciais = {2, 4, 6};
for (int i = 0; i < zingsniaiTukstanciais.length; i++) {
zingsniaiTukstanciais[i] *= 1000;
}
for (int zingsniai : zingsniaiTukstanciais) {
System.out.println(zingsniai);
}2000
4000
6000
- Pradinis masyvas saugo reikšmes
2, 4, 6, kurios reiškia tūkstančius žingsnių. - Pirmasis
forciklas kiekvieną elementą pasiekia per jo indeksą. - Komanda
zingsniaiTukstanciais[i] *= 1000tikrąjį masyvo elementą padaugina iš tūkstančio. - Po pirmojo ciklo masyve jau saugomos reikšmės
2000, 4000, 6000. - Antrasis,
for-each, ciklas šias pakeistas reikšmes parodo konsolėje.
Kurį ciklą pasirinkti?
| Užduotis | Rekomenduojamas ciklas |
|---|---|
| Perskaityti visus elementus | for-each |
| Gauti elemento indeksą | for |
| Pakeisti elementą pagal jo vietą | for |
| Pereiti masyvą atbulai arba kitu žingsniu | for |
| Susumuoti visas reikšmes | Abu tinka |

