Java – Tingimuslaused ja tsüklid (Ülesanne 5)

Tingimuslause IF

Tingimuslause (condition) tähendab, et kood peab vastama mingile etteantud tingimusele. Kõige olulisem neist onif-lause. Tingimuslausetega saame hakkama, kui me teame vähemalt kuute võrdlusoperaatorit.

Kui me Javas midagi võrdleme, siis saame vastuseks true (tõene) või false (väär/vale).  Kõige lihtsam süntaks näeb välja järgmine:

Meie esimene tingimuslause hakkab siis  tööle, kui saame sellele vastata “JAH”. Näiteks kui kliendi pikkus on vähemalt 200cm, siis väljastame soovitud lause.

Hetkel reageeris kood ainult siis, kui tingimus oli täidetud ja rohkem sellelt muud ei oodatud. Aga kui peame igal juhul ära otsustama, et mis juhtuma hakkab, siis lisame else-direktiivi.

Kui on valikuid rohkem kui kaks, siis saame tingimusi juurde lisada else-if-direktiivi abil. Võtame näiteks õpilaste hindamise, kus hinnete lävendid on järgmised:

  • 90p=”5″
  • 70p=”4″
  • 50p=”3″

Isiklikult meeldib ülevalt kontrollima hakata stiilis: “Kas õpilane sai vähemalt 90p. Kui sai, siis hinne ‘5’“. Ja kui jõuan “3” ära küsida, siis pole enam kontrolli vaja, sest see töö on ebaõnnestunud.

Tingimuslaused võivad sisaldada ka teisi tingimuslauseid oma sees ning võivad loomulikult sisaldada erinevaid arvutisi. Vaatame näiteks koodi, mis ütleb, kas arv on paaris või paaritu. Teeme jäägiga jagamise tehte. Kui jääk==0, siis on  tegemist paaris arvuga.

Mitu valikut AND

Kui tingimuslause peab samaaegselt vastama mitmele tingimusele, siis tuleb mängu loogika operaator AND (eesti k. NING). Kirja tuleb see panna märkide abil &&. Vaatame näidet, kus arv peab jääma kindlasse vahemikku 15-18.

Üks valikust OR

Kui tingimus peab vastama vähemalt ühele paljudest tingimustest, siis kasutame operaatorit OR (eesti k. VÕI). Koodis kasutame märke ||. Kontrollime näiteks kas vanus või sünniaasta vastab tingimustele.

Sõnede võrdlemine

Sõnede puhul ei ole hea mõte kasutada võrdluseks == märke. Sest see kuidas Java sõnesid mälus hoiab võib anda võrdluses vale tulemuse. Ja seepärast kasutatakse sõnede võrdlemiseks meetodit equals.

Ja kui vaja eitada, siis lisa ette hüüumärk:  !roll.equals("admin")

Eriti lühike IF

Java lubab kasutada ka nö. lühikest tingimuslauset (ternary operator), mille süntaks võib alguses olla võõras, aga kui kasutama hakkad, siis saad aru selle eelistest.

Lisame pisikese näite ka, kus tingimus on tõene, kui see on null või suurem.

SWITCH lause

Switch lause asendab if-elseif-else lauset. See teeb täpselt sama asja aga aegajalt on seda lihtsam kirja panna ja visuaalselt tundub silmaga paremini hallatav.

Pane tähele, et pärast igat lauset on break, mis katkestab edasised otsingud ning lause lõpus on vaikimisi väärtus (default), kui sinu etteantud tingimustele midagi ei vastanud. Vaatame näiteks hinde ning väljastame vastavalt sellele tekstilise väärtuse.

Tsükkel FOR

Programmeerimises tähendab tsükkel mingit kindlat arvu tegevust. Me vaatame kaht eelkontrolliga tsüklit FOR ja WHILE. Eelkontroll tähendab, et kontroll tehakse enne järgmise tsükli alustamist. Vaatame näidet, kus laseme tsüklil 10 korda käivituda ja sama lauset.

Kuidas see töötab:

  • sulgude vahel on loodud muutuja, mille väärtus on null  int i = 0
  • seejärel kontroll, kas on muutja väärtus on väiksem kui 10
    • kui i<10, siis liidetakse muutujale +1 juurde ja väljastatakse lause “Hello World!”
    • kui muutuja on juba 10 ja suurem, siis tsükkel katkestatakse

Tsüklis loodud numbrit saab kenasti ära kasutada. Näiteks järjekorranumbri loomiseks. Kui tahan, et nummerdus algaks ühest, siis pean tsüklis selle ära määrama.

Samat tsüklit kasutasime eelmises harjutuses massiivide puhul, sest massiivi puhul kasutame indekseid. Aga kuna i väärtus on 0, siis tuleb nummerdamiseks +1 juurde lisada

Tsükkel tsüklis

Tsükleid saab kasutada ka teineteise sees. Näiteks esimene tsükkel loob ridu ja teine iga rea veergusid.

foreach tsükkel

Massiividega töötamiseks on Javas võimalus kasutada foreach tsüklit, kuid Javas pannakse see kirja natuke teisiti ja seda ei kirjutada nii välja:

Tsükkel WHILE

While tsükkel on oma olemuselt sarnane for tsüklile. Erinevus seisneb selles, et muutuja algväärtustatakse väljaspool blokki. Lisame ühe lihtsa näite, kus loome arvud 1-10.

Ülesanne 5

  • Loo uus klassi fail ja lisa kõige ette oma nimega kommentaar
  • Loo meetod (alamprogramm), mis lubab kasutajal sisestada kahte arvu ja teostada jagamistehet
    • lisa kontroll, mis kontrollib kas mõlemad arvud on positiivsed. Kusjuures esimene arv võib olla ka null aga teine (jagaja) mitte
    • teavita kasutajat, kui midagi on valesti
  • Teavita koodi nii, et jagamistehet saab teha 3 korda (tsükkel)
SEE ALLAdd a note
YOU
Add your Comment

Viimased postitused

Meist

metshein.com on pakkunud juba üle kümne aasta tasuta eestikeelseid infotehnoloogiaga seotud kursusi. Sama kurssi püütakse järgida ka edaspidi. Eesmärk muuta arvutiõpe võimalikult lihtsaks!

metshein.com: parim eestikeelne koolitusportaal

Kontakt: kliki siia

Hetkel õpivad:

Profile picture of kpiirsoo@gmail.com

Kontrolli tunnistust

Tööribale