Erinevus lehekülje "Java:Tsüklid" redaktsioonide vahel
(ei näidata sama kasutaja 2 vahepealset redaktsiooni) | |||
10. rida: | 10. rida: | ||
Ainuke erinevus ridade vahel on argument, mis println() meetodisse antakse kaasa. Vaatleme, kuidas sama asja lahendada erinevate tsüklitega. | Ainuke erinevus ridade vahel on argument, mis println() meetodisse antakse kaasa. Vaatleme, kuidas sama asja lahendada erinevate tsüklitega. | ||
+ | |||
+ | |||
+ | == WHILE tsükkel == | ||
+ | |||
+ | while-tsüklit saab kasutada, et mingit koodiosa korrata. Tsükli puhul on oluline määrata ära, kui kaua (ehk mis tingimusel) korrata tuleb. | ||
+ | |||
+ | Süntaks: | ||
+ | |||
+ | <pre> | ||
+ | while (tingimus) { | ||
+ | käsud | ||
+ | } | ||
+ | </pre> | ||
+ | |||
+ | kogu seda koodiosa ''käsud'' korratakse senikaua, kuni ''tingimus'' on tõene ('''true'''). | ||
+ | |||
+ | Näiteks: | ||
+ | <source lang="java" line> | ||
+ | int i = 0; | ||
+ | while (i < 5) { | ||
+ | System.out.println(i); | ||
+ | i = i + 1; | ||
+ | } | ||
+ | System.out.println("läbi"); | ||
+ | </source> | ||
+ | |||
+ | Mida see kood teeb? Esimesel real deklareeritakse muutuja i ja pannakse selle väärtuseks 0. Järgneb while-tsükkel, mille tingimus on i < 5. Ehk siis tingimusel, et i väärtus on väiksem kui 5, korratakse koodiosa, mis on ploki sees (read 3 ja 4). Esimesel käivitamisel on i väärtus 0, see on väiksem kui 5, seega käivitatakse while-tsükli sisu. 3. rida prindib välja i väärtuse, et 0. 4. rida muudab i väärtust. i väärtus on i endine väärtus + 1 ehk siis i = 0 + 1 = 1. Sellega on tsükli sisu läbitud. Nüüd kontrollitakse jälle, kas tingimus vastab tõele (i < 5) ehk (1 < 5), see on tõene. Samamoodi tehakse need sammud läbi i = 1, i = 2, i = 3 puhul. Kui i = 4, siis prinditakse välja 4. 4. rida muudab i väärtust: i = 5. Nüüd kui tsükli päises kontrollitakse, kas i < 5 (ehk 5 < 5), on tulemus väär. Seega enam tsükli sisu käima ei panda. Järgmine rida, mis käivitatakse on 6, mis trükib välja "läbi". | ||
== FOR tsükkel == | == FOR tsükkel == | ||
43. rida: | 70. rida: | ||
* ''jätkamise-tingimuse'' kontroll (ja sedasi hakkab korduma) | * ''jätkamise-tingimuse'' kontroll (ja sedasi hakkab korduma) | ||
+ | for-tsüklit saab kasutada ka selliselt, et mõni (kasvõi kõik) nendest kolmest osast on täitmata. Näiteks: | ||
+ | <source lang="java"> | ||
+ | int i = 0; | ||
+ | for ( ; i < 10; i++) { | ||
+ | System.out.println(i); | ||
+ | } | ||
+ | </source> | ||
[[Category:Java juhend|Tsüklid]] | [[Category:Java juhend|Tsüklid]] |
Viimane redaktsioon: 12. veebruar 2015, kell 15:39
Tsükkel (ik loop) võimaldab mingit koodiosa korrata teatud reeglite alusel. Kui näiteks programm peab väljastama numbrid ühest viieni, võib seda teha 5 reaga. Samas kui see programm peaks hakkama väljastama numbreid ühest tuhandeni, oleks 1000 rea kirjutamine väga ebapraktiline. Kui vaatate allolevat koodi, hakkab silma, et read on üsna sarnased:
System.out.println(0); System.out.println(1); System.out.println(2); System.out.println(3); System.out.println(4);
Ainuke erinevus ridade vahel on argument, mis println() meetodisse antakse kaasa. Vaatleme, kuidas sama asja lahendada erinevate tsüklitega.
WHILE tsükkel
while-tsüklit saab kasutada, et mingit koodiosa korrata. Tsükli puhul on oluline määrata ära, kui kaua (ehk mis tingimusel) korrata tuleb.
Süntaks:
while (tingimus) { käsud }
kogu seda koodiosa käsud korratakse senikaua, kuni tingimus on tõene (true).
Näiteks: <source lang="java" line> int i = 0; while (i < 5) {
System.out.println(i); i = i + 1;
} System.out.println("läbi"); </source>
Mida see kood teeb? Esimesel real deklareeritakse muutuja i ja pannakse selle väärtuseks 0. Järgneb while-tsükkel, mille tingimus on i < 5. Ehk siis tingimusel, et i väärtus on väiksem kui 5, korratakse koodiosa, mis on ploki sees (read 3 ja 4). Esimesel käivitamisel on i väärtus 0, see on väiksem kui 5, seega käivitatakse while-tsükli sisu. 3. rida prindib välja i väärtuse, et 0. 4. rida muudab i väärtust. i väärtus on i endine väärtus + 1 ehk siis i = 0 + 1 = 1. Sellega on tsükli sisu läbitud. Nüüd kontrollitakse jälle, kas tingimus vastab tõele (i < 5) ehk (1 < 5), see on tõene. Samamoodi tehakse need sammud läbi i = 1, i = 2, i = 3 puhul. Kui i = 4, siis prinditakse välja 4. 4. rida muudab i väärtust: i = 5. Nüüd kui tsükli päises kontrollitakse, kas i < 5 (ehk 5 < 5), on tulemus väär. Seega enam tsükli sisu käima ei panda. Järgmine rida, mis käivitatakse on 6, mis trükib välja "läbi".
FOR tsükkel
Pythonis oleks saanud kasutada sellist lahendust: <source lang="python"> for i in range(5):
print(i)
</source>
Javas saab kirjutada sellise koodi:
<source lang="java"> for (int i = 0; i < 5; i++) {
System.out.println(i);
} </source>
Üldine kuju:
for (initsialiseerimine; jätkamise-tingimus; uuendamine) { käsud }
initsialiseerimine käivitatakse ainult üks kord - kõige alguses. Jätkamise-tingimust kontrollitakse enne igat kordust. Kui jätkamise-tingimus annab tulemuseks true, pannakse käskude osa käima. Peale käskude käivitamist toimub uuendamine, millele järgneb jälle jätkamis-tingimuse kontrollimine.
Ehk siis for-tsükli käivitamise järjekord on selline:
- initsialiseerimine
- kui jätkamise-tingimus on tõene, jätkame, muul juhul lõpetatakse tsükli täitmine ära.
- käsud
- uuendamine
- jätkamise-tingimuse kontroll (ja sedasi hakkab korduma)
for-tsüklit saab kasutada ka selliselt, et mõni (kasvõi kõik) nendest kolmest osast on täitmata. Näiteks:
<source lang="java"> int i = 0; for ( ; i < 10; i++) {
System.out.println(i);
} </source>