Erinevus lehekülje "Java:Tsüklid" redaktsioonide vahel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
 
(ei näidata sama kasutaja üht 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 ==

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>