While

From ICO wiki
Revision as of 17:54, 11 November 2014 by Hniidas (talk | contribs) (→‎Kasutamine)
Jump to navigationJump to search

Mõisted

TSÜKKEL on struktuur, mille abil saab mingi osa programmi või algoritmi lauseid korduma panna.[1] Sageli on vaja täita mingeid käske korduvalt: trükkida mitu korda sama sõna, teha sama tehet, joonistada ühesuguseid kujundeid jne. Ühest küljest oleks liiga töömahukas kopeerida sama koodi kümneid, tuhandeid või miljoneid kordi, teisest küljest ei pruugi me alati programmi kirjutades veel teadagi, mitu korda mingit operatsiooni on vaja teha. Kas programmi kasutaja soovib joonistada 10 või 1000 kolmnurka? [2]

Korduvate operatsioonide puhul kasutatakse programmeerimises tsükleid. Tsükleid on kaht tüüpi:[3]

  • While-tsükkel e. tsükkel, mis kordab valitud käske seni, kuni määratud tingimus (tsüklitingimus) on tõene (ka eelkontrolliga tsükkel).
  • For-tsükkel e. tsükkel, mis kordab valitud käske kindel arv kordi (ka määratud tsükkel).


WHILE TSÜKKEL on eelkontrolliga tsükkel, kus kontrollitakse enne käskude täitma asumist mingi tingimuse tõesust. Kuni tingimus on tõene (tsüklitingimuses kasutatav tsüklimuutuja vastab tingimusele), täidetakse tsüklis olevaid käske, kui aga mitte, väljutakse tsüklist e. minnakse järgmisele reale pärast tsüklit sisaldavat plokki. While tsükkel on olemas enamikes programmeerimiskeeltes [4]

While-tsükli üldine kuju: [5]

while <avaldis>:
   <käsk_1>
   <käsk_2>

Kasutamine

While-tsüklit on mõistlik kasutada siis, kui pole teada, palju kordi on vaja koodiridu korrata, kuni kasutaja sisestab nõuetele vastavad andmed (alles siis minnakse edasi ja töödeldakse neid) või kuni kasutaja soovib lõpetetada programmi töö. Tsükli täitmise igal sammul peaks tsüklimuutuja väärtust muutma, vastasel korral on tsükli tingimus pidevalt tõene ja tsükkel jääb lõpmatult tööle. [6]

Lause keha täidetakse vaid siis kui päises antud tingimus kehtib. Kui kehas olevad laused on täidetud, siis minnakse uuesti päises näidatud tingimust kontrollima – kui tingimus kehtib ikka veel, siis täidetakse kehas olevad laused uuesti jne. [7] Selleks, et taoline tsükkel ei jääks lõputult tööle, peab tsükli kehas olema mingi lause, mis mõjutab tingimuse kehtivust – järgnevas näites on selleks lause, mis muudab muutuja i väärtust 1 võrra suuremaks. Muutujaid, mille väärtust suurendatakse igal tsükli sammul, nimetatakse loenduriteks ja nende nimeks pannakse tavaliselt i. Selliseid tsükleid, kus korduste arv on tsükli alustamise hetkel teada, nimetatakse määratud tsükliteks.[8]

  • Järgnevas näites võrdsustatakse muutuja i väärtus ühega ning väljastatakse i väärtusi ja suurendatakse i väärtust ühe võrra seni, kuni i väärtus pole enam väiksem kui 5. Seega muutub i väärtus ühest neljani ning ekraanile trükitakse neli rida. [9]
i = 1
while i < 5:
    print("i väärtus on " + str(i))
    i = i + 1
  • Järgnevas näites kontrollib kood muutuja väärtust ja kui see on väiksem-võrdne kui 10, siis väljastatakse muutuja väärtus ja suurendatakse seda ühe võrra. Tehakse uus kontroll ja seda tsüklit korratakse kuni muutuja väärtus on suurem kui 10 ja tsükkel lõpetatakse. [10]
class while_tsykkel{
 public static void main(String args[]){
   int nr = 1;
   while(nr <= 10){
     System.out.println(nr);
     nr++;
    }
  }
}

Ekraanile trükitakse kümme rida.

1
2
3
4
5
6
7
8
9
10

Näited kasutamise kohta

Kokkuvõte

Kasutatud kirjandus

Koostas

Heiko Niidas AK-31, 2014