10 Mitmeharuline tingimuslause elif abil
Eespool juba vaatlesime olukordi, kus tingimuslause harudes oli omakorda tingimuslauseid. Siin vaatame, kuidas vahel saab selliseid olukordi lühemalt kirja panna.
Vaatame sellist näidet, kus programmile öeldakse punktisumma ja programm teatab, mis hinde see summa annab.
Ülikoolis pannakse tihti hindeid järgmise skeemi järgi:
Tulemus (%) | Hinne |
---|---|
>90 .. 100 | A |
>80 .. 90 | B |
>70 .. 80 | C |
>60 .. 70 | D |
>50 .. 60 | E |
<=50 | F |
Programm, mis saab sisendiks punktid ja kontrollib, kas selle eest saab hinde “A”, oleks järgnev:
punktid = int(input("Sisesta punktide arv")) if punktid > 90: print("Hinne A") else: print("Ei ole hinne A")
Lisame nüüd kontrolli ka hindele “B”:
punktid = int(input("Sisesta punktide arv")) if punktid > 90: print("Hinne A") else: if punktid > 80: print("Hinne B") else: print("Hinne ei ole A ega B")
Kuna hinnetele vastavaid vahemikke on palju, siis kipub programm jooksma treppides liiga paremale. Mugavamaks programmeerimiseks võib kasutada elif-osa, mis on nii kirjapildi kui ka tähenduse poolest kombinatsioon else-ist ja talle järgnevast if-ist.
Näiteks eelnev programmilõik oleks elif-i kasutades selline:
punktid = int(input("Sisesta punktide arv")) if punktid > 90: print("Hinne A") elif punktid > 80: print("Hinne B") else: print("Hinne ei ole A ega B")
Programmi plokkskeem oleks selline:
Proovi lisada programmile ka teiste hinnete väljastamine.