Windows käsurida
Igale arvutile on töötamiseks paigaldatud operatsioonisüsteem (näiteks MS...
Selles peatükis õpime, kuidas saame teostada erinevaid tehteid, kasutades selleks Java operaatoreid.
Alustame kõige lihtsamatest aritmeetilistest operaatoritest (arithmetic operators).
Kui kasutad täisarve, siis tuleb ka vastus täisarvuline.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class muutujad { public static void main(String[] args) { int a = 3; int b = 2; float jagamine; jagamine = a / b; System.out.println(jagamine); } } |
Jagamise puhul täisarvudega kuvatakse ainult täisosa. Kui soovid vastust komakohtadega, siis vähemalt üks argumentidest peab olema komaarv.
Siia gruppi loetakse ka nn ühe võrra suurendamise ja vähendamise operaatoreid (increment and decrement operators). Õigemini on see viis panna asja kirja lihtsamalt. Kõige tihedamini kohtame neid massiivide ja tsüklite puhul.
Omistamisoperaatori (assignment operators) puhul vaadatakse võrdusmärki, kui omaette operaatorit. See annab näiteks olemas olevat väärtust suurendada või vähendada.
Mis võiks järgmise tehte vastus olla?
1 2 3 4 5 6 7 8 9 10 | public class muutujad { public static void main(String[] args) { int i = 3; int j = 2; System.out.println(i+=j); } } |
Kasutades võrdlusoperaatoreid, saame vastuseks true (tõene) või false (väär/vale). Hetkel pole küll sellega midagi peale hakata, aga nii kui jõuame tingimuslausete juurde, läheb see kohe käiku.
Võrdlusoperaatporitega käivad tihti kaasas ka loogika operaatorid (boolean operators), mis lubavad luua keerukamaid võrdlusi/tingimusi.
Tõeväärtustabel juhindumiseks:
Teeme ühe lihtsa näite – juhul kui mõlemad arvud on suuremad kui 5, siis liidetakse mõlemad kokku. Kui mitte, on väljastame 0.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class muutujad { public static void main(String[] args) { int x, y, z; x = 7; y = 6; if(x>5 && y>5){ z = x + y; } else { z = 0; } System.out.println(z); } } |
Tegevust, kus sul on vaja muuta jooksvalt muutuja andmetüüpi, nimetatakse casting. Muutuja enda väärtus sellega ei muutu. Võtame jagamise näite, kus üks täisarv peaks olema vähemalt komaarv. Muudame selle jooksvalt tehtes komaarvuks.
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class muutujad { public static void main(String[] args) { int x, y; float z; x = 7; y = 6; z = (float)x / y; System.out.println(z); } } |
Tean, et oskad kasutada ümarsulgusid, aga lihtsalt väike meelespea, et kui soovid määrata tehete järjekorda, siis kasuta neid :)
Ja ka operaatoritel on oma järjekord. Kindlasti mäletad reeglit “enne korrutan ja jagan, siis liidan ja lahutan” (3. klass). See kehtib ka siin.
Kui meil läheb vaja muuta arv absoluutväärtuseks, leida siinus, ümardada, leida suurim jne, siis tuleb meile appi Java klass Math (kliki lingile, et näha kõiki meetodeid). Tekitame näite, kus
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class muutujad { public static void main(String[] args) { double x,y,z; //suvaline arv x = Math.random()*100; //ümardame kaks kohta y = Math.round(x*100.0)/100.0; //astendamine z = Math.pow(8, 3); System.out.println(x); System.out.println(y); System.out.println(z); } } |
Üritan vaikselt harjutada meid klasside, objektide ja meetoditega ning seepärast saame alguses neid tüki kaupa.
Nagu me siiani näinud oleme, siis Java rakenduse põhiprogramm on main . See tähendab, et kui kood käivitatakse, piilutakse kohe siia. Et kood oleks loetavam ja paremini hallatav, siis esimene samm selle jaoks on oma alamprogrammide ehk meetodite kasutamine. Protseduurlises programmeerimises kasutasime mõistet funktsioon, mis tähendab inimkeeli mingit tegevust programmis, mida on võimalik korduvalt välja kutsuda. Oma meetodi kirjeldame võtmesõnaga static , mis tähendab, et see pole seotud ühegi objektiga.
Teeme ühe näite, kus loome ühe meetodi ytleTere() “Tere maailm!” väljastamiseks. Kui alamprogramm on olemas, siis saame selle põhiprogrammis välja kutsuda.
1 2 3 4 5 6 7 8 9 10 11 12 | public class ylesanne2 { //põhiprogamm public static void main(String[] args) { ytleTere(); } //alamprogramm static void ytleTere(){ System.out.println("Tere maailm!"); } } |
Mäletad, mida teeb tühi tagastustüüp void ? See ei tee mitte midagi, sest meie alamprogramm ei pidanud midagi meile ka väljastama.
Muudame meetodi dünaamilisemaks ja lisame argumendi, keda tervitada. Argumendi puhul tuleb määrata selle tüüp ja kui neid on rohkem, siis erista need komadega.
1 2 3 4 5 6 7 8 9 10 11 12 | public class ylesanne2 { //põhiprogamm public static void main(String[] args) { ytleTere("Java"); } //alamprogramm argumendiga static void ytleTere(String nimi){ System.out.println("Tere "+nimi+"!"); } } |
Teeme ühe näite, kus meetod peab tagastama meile näiteks mingi täisarvu. Teeme näiteks meetodi, mis arvutab ringi pindala. Nüüd programm leiab vastuse ja omistab selle muutujale s . Ja nüüd saame seda kasutada edasi järgmistes arvutustes või lihtsalt välja printida.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class ylesanne2 { //põhiprogamm public static void main(String[] args) { ytleTere("Java"); int s = ruuduPindala(4); System.out.println("Ruudu pindala on "+s); } //tagastab täisarvulise väärtuse static int ruuduPindala(int a){ int pindala = a * a; return pindala; } //alamprogramm argumendiga static void ytleTere(String nimi){ System.out.println("Tere "+nimi+"!"); } } |
Lisa kõik alamprogrammid ühte faili.