JavaPython:Tsükkel

Allikas: Kursused
Mine navigeerimisribale Mine otsikasti
Java vs Python

For-tsükkel

For tsüklil on Javas kaks erinevat esitust: 1) for-each ehk for-in 2) tavaline for-tsükkel. Esimest kasutatakse järjendite ja kollektsioonide korral just nagu Pythonis. Selle puhul peidetakse indeksid programmeerija eest ära, aga(!) seda saab kasutada ainult siis, kui ei ole vaja järjendi elemente omavahel võrrelda (indeksita ei saa nt eelmist/järgmist elementi lihtsalt kätte), neid asendada ega eemaldada ning järjendit või kollektsiooni läbitakse ainult kindlas suunas. Tavaline for-tsükkel (tavaline on ta sellepärast, et see on Javas alati olnud, for-each tuli alates Java versionist 1.5) sisaldab paljudele tsüklitele omaseid osi juba struktuuris: initsialiseerimine, jätkamistingimus (loogiline avaldis, mille puhul tsüklit jätkata) ja järeltegevus (nt indeksi suurendamine).

While-tsükkel

while tsükkel on for-tsükli erijuht, kus puuduvad initsialiseerimine ja järeltegevus; päiseks on ainult jätkamistingimus. do...while on järelkontrolliga tsükkel, see tähendab, et tingimust kontrollitakse alles pärast tsükli sisu läbimist, seega tsükli sisu läbitakse alati vähemalt ühe korra. Juhtimisdirektiivid break ja continue toimivad nagu Pythonis, vastavalt lõpetatakse tsükli töö ja minnakse kohe järgmise tsükli sammu juurde pooleliolevat tsükli sisu lõpetamata. Javas saab nende direktiivide abil katkestada või jätkata ka kaugemaid hõlmavaid tsüklidirektiive (siinkohal seda võimalust täpsemalt ei käsitle). Direktiivil break on oluline roll ka Java lülitidirektiivides.

Näide

Järgnevalt on toodud erinevate tsüklidirektiivide (for, while, do...while) esitus Pythonis ning Javas. Nagu näidetest näha, peab Java koodi puhul tsükli parameetri (s, i) tüübi defineerima. Pythonis seda ei tehta.

Java Python
<syntaxhighlight lang="java" line="1" >

for (String s : soneJarjend){

   System.out.println(s);

} for (int i = 0; i < 10; i++){

   System.out.println(i);

} int i = 0; while(i < 10){

   if(i == 3){
       continue;
   }
   System.out.println(i);
   i++;

} int i = 1; do{

   System.out.println(i);
   i++;

}while(i <= 10) </syntaxhighlight>

<syntaxhighlight lang="python" line="2" >

for s in soneJarjend:

   print(s)

for i in range(0,10):

   print(i)

i = 0 while i < 10:

   if i == 3:
       continue;
   print(i)
   i=i+1

</syntaxhighlight>