Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

2.9.2008ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.

Samankaltaiset esitykset


Esitys aiheesta: "2.9.2008ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int."— Esityksen transkriptio:

1 2.9.2008ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int luku = 123;  Alkuarvon on oltava muuttujan tietotyypin mukainen, esimerkiksi int-muuttujilla kokonaisluku, double- muuttujilla desimaaliluku ja String-muuttujilla merkkijono.  Muuttujalle on turvallisinta antaa aina jokin sopiva alkuarvo.

2 2.9.2008ict1td002 - Copyright Raine Kauppinen 2 Alkuarvot ja tyyppimuunnokset (2/5)  Alkuarvoa ei ole välttämätöntä antaa, jolloin pelkkä muuttujan esittely riittää, esimerkiksi: int summa; double cm; String ika;  Tällöin on huolehdittava siitä, että ohjelmaan ei voi jäädä tilannetta, missä muuttujaa yritetään käyttää ilman, että sille on annettu sijoituslauseella arvoa – muutoin seurauksena on virheilmoitus.

3 2.9.2008ict1td002 - Copyright Raine Kauppinen 3 Alkuarvot ja tyyppimuunnokset (3/5)  (Viittaus)muuttujille annetaan usein alkuarvoksi tyhjää tarkoittava arvo null, jos muuttujalle ei ole esittelyn yhteydessä anneta varsinaista käyttökelpoista arvoa.  Tyhjäarvoa käytetään esimerkiksi seuraavasti: String vastaus = null;  Tyhjäarvo on tosiaan sijoitettu muuttujaan, kokeile esimerkiksi tulostaa se: String vastaus = null; System.out.prinln(”Arvona on ”+vastaus);

4 2.9.2008ict1td002 - Copyright Raine Kauppinen 4 Alkuarvot ja tyyppimuunnokset (4/5)  Sijoituslauseita käytetäessä on joskus tarpeen sijoittaa muuttujaan arvo, joka ei alun perin ole muuttujan tyyppiä (esimerkiksi muuttaa desimaaliluku kokonaisluvuksi).  Osan tyyppimuunnoksista Java tekee automaattisesti (esimerkiksi kokonaisluvun voi sijoittaa desimaalilukumuuttujaan), mutta useimmissa tapauksissa tyyppimuunnos on kirjoitettava näkyviin.  Kaikki tyyppejä ei kuitenkaan voi muuntaa ristiin.

5 2.9.2008ict1td002 - Copyright Raine Kauppinen 5 Alkuarvot ja tyyppimuunnokset (5/5)  Tyyppimuunnoksen tekemisestä käytetään englannissa termiä casting (suomalaisittain kastaus).  Esimerkkejä tyyppimuunnoksista: double luku = 12; //automaattinen, luvuksi 12.0 int luku2 = (int)5.75; //luku2:n arvoksi 5 luku = 3.14; //sijoituslause luku2 = (int)luku; //luku2:n arvoksi 3  Huom: Käsin tehdyn tyyppimuunnoksen järkevyydestä vastaa ohjelmoija!

6 2.9.2008ict1td002 - Copyright Raine Kauppinen 6 3. Vertailu ja ehtolause (if-else if-else)  Olemme tähän asti käyttäneet ohjelmoinnin perusrakenteista vain peräkkäisyyttä, eli lauseet suoritetaan peräkkäin yksi kerrallaan.  Monipuolisempien ohjelmien tekeminen vaatii muutamia muita rakenteita, joista ensimmäisenä käsittelemme ehtolauseen (eli valinnan).  Ehtolausetta varten tarvitsemme ensin vertailun käsitteen.

7 2.9.2008ict1td002 - Copyright Raine Kauppinen 7 Vertailu (1/5)  Vertailulla tarkoitetaan operaatiota, jossa kahta arvoa (esimerkiksi lukua, muuttujan arvoa tai lausekkeen arvoa) verrataan toisiinsa.  Esimerkiksi vertailu ”Onko a pienempi kuin b?” kirjoitetaan a < b.  Javassa vertailun tulos on totuusarvo (boolean, joka on joko epätosi tai tosi, eli true tai false - esimerkiksi vertailun 1<2 tulos on true), vrt. laskutoimituksen tulos, esimerkiksi yhteenlaskun 1+4, jonka tulos on 5.

8 2.9.2008ict1td002 - Copyright Raine Kauppinen 8 Vertailu (2/5)  Vertailuoperaattorit Javassa ovat seuraavat: == yhtä suuri kuin!= erisuuri kuin suurempi kuin <=pienempi tai yhtä suuri kuin >=suurempi tai yhtä suuri kuin  Huomaa ero yhtä suuruusoperaattorin (==) ja sijoitusoperaattorin välillä (=): int luku1 = 5; luku1 = 5; // luku1 saa arvon 5 luku1 == 5; // onko luku1 yhtä suuri kuin 5?

9 2.9.2008ict1td002 - Copyright Raine Kauppinen 9 Vertailu (3/5)  Vertailun tuloksen voi esimerkiksi sijoittaa boolean- tyyppisen muuttujan arvoksi: int testi = 5; boolean onkoSuurempi = false; testi = 4; // testi saa arvon 4 onkoSuurempi = (luku1 > 5); // false testi = 8; onkoSuurempi = (luku1 > 5); // true

10 2.9.2008ict1td002 - Copyright Raine Kauppinen 10 Vertailu (4/5)  Käytettävissä ovat myös seuraavat operaattorit: ! NOT (looginen ei) &&AND (looginen ja) ||OR (looginen tai)  Näitä käytetään lausekkeiden kanssa, loogista eitä yhden ja muita kahden lausekkeen kanssa (näitä voi myös yhdistellä): !(lauseke) (lauseke) && (lauseke) (lauseke) || (lauseke)

11 2.9.2008ict1td002 - Copyright Raine Kauppinen 11 Vertailu (5/5)  Esimerkkejä: int a = 5; int b = 7; boolean c = false; c = !(c); // c saa arvon false c = (a 0); // c saa arvon true c = (a==b) || (b>0); // c saa arvon true c = ((a 0)) || (b>a); // true

12 2.9.2008ict1td002 - Copyright Raine Kauppinen 12 Ehtolause (if-else) (1/3)  Ehtolauseella voidaan ehdon perusteella valita, mitä tehdään seuraavaksi.  Yksinkertaisessa muodossa ehtolauseen rakenne on seuraavanlainen: if (ehto) { // lauseet, jotka suoritetaan, jos ehto on // tosi } else { // lauseet, jotka suoritetaan, jos ehto on // epätosi }

13 2.9.2008ict1td002 - Copyright Raine Kauppinen 13 Ehtolause (if-else) (2/3)  Ehtolauseen ehtona on lauseke, jolla on totuusarvo (usein esimerkiksi looginen vertailu tms.).  Lauseen else-osaa ei tarvitse kirjoittaa, jos ehdon ollessa epätosi ei tarvitse tehdä mitään, siis if (ehto) { // lauseet, jotka suoritetaan, jos // ja vain jos ehto on tosi }

14 2.9.2008ict1td002 - Copyright Raine Kauppinen 14 Luentoesimerkki 3.1 Tee ohjelma, joka kysyy käyttäjältä kokonaisluvun. Jos luku oli suurempi kuin 125, ohjelma tulostaa näytölle ”Lukusi on yli 125”, muuten ohjelma tulostaa näytölle ”Lukusi alle tai tasan 125”. Talleta ratkaisusi tiedostoon Vertailu.java.

15 2.9.2008ict1td002 - Copyright Raine Kauppinen 15 Ehtolause (if-else) (3/3)  Pidemmässä muodossa rakenne on seuraavanlainen (else if-osia voi olla useita): if (ehto1) { // lauseet, jotka suoritetaan, jos ehto1 on // tosi } else if (ehto2){ // lauseet, jotka suoritetaan, jos ehto2 on // tosi } else { // lauseet, jotka suoritetaan, jos mikään // ehdoista ei ollut tosi }

16 2.9.2008ict1td002 - Copyright Raine Kauppinen 16 Luentoesimerkki 3.2 Tee ohjelma, joka kysyy käyttäjän iän. Jos ikä on yli 30, ohjelma tulostaa ”Olet yli kolmekymppinen”. Jos ikä on yli 18, mutta alle 30, ohjelma tulostaa ”Olet 18-30- vuotias”. Jos ikä on alle 18, ohjelma tulostaa ”Olet alaikäinen”. Talleta ratkaisusi tiedostoon Ika.java.

17 2.9.2008ict1td002 - Copyright Raine Kauppinen 17 4. Toistolauseet while- ja do-while (1/3)  Toistolauseen avulla samoja lauseita voidaan toistaa, kunnes jokin ehto lakkaa olemasta tosi.  Toistolauseista while-lauseen rakenne on seuraava: while (ehto) { // lauseet, joita toistetaan, kunnes // ehto on epätosi }  Tässä tapauksessa ehto testataan ennen toistoa, mikä tarkoittaa, että toiston sisällä olevia lauseita ei välttämättä suoriteta kertaakaan.

18 2.9.2008ict1td002 - Copyright Raine Kauppinen 18 Toistolauseet while- ja do-while (2/3)  Mitä seuraava ohjelmanpätkä tekee? int luku = 1; boolean jatketaan = true; while (jatketaan) { luku = luku * luku; System.out.println(luku); luku++; }  Entä miten kauan ohjelman suoritus jatkuu?

19 2.9.2008ict1td002 - Copyright Raine Kauppinen 19 Luentoesimerkki 3.3 Tee ohjelma, joka tulostaa näytölle desimaaliluvut kymmenestä viiteenkymmeneen 0,5:n välein. Käytä while-lausetta. Talleta ratkaisusi tiedostoon Luvut.java.

20 2.9.2008ict1td002 - Copyright Raine Kauppinen 20 Toistolauseet while- ja do-while (3/3)  Toistolauseista do-while -lauseen rakenne on seuraava: do { // lauseet, joita toistetaan, kunnes // ehto on epätosi } while (ehto);  Tässä tapauksessa ehto testataan toiston jälkeen, joten toiston sisällä olevat lauseet suoritetaan ainakin kerran.  Myöhemmin opitaan vielä yksi toistorakenne, for-lause.

21 2.9.2008ict1td002 - Copyright Raine Kauppinen 21 Luentoesimerkki 3.4 Tee ohjelma, joka kysyy käyttäjältä kokonaislukuja, kunnes käyttäjä antaa luvuksi -1. Ohjelma tulostaa näytölle jokaisen luvun antamisen jälkeen ko. luvun neljännen potenssin. Käytä do-while-lausetta. Talleta ratkaisusi tiedostoon Lasku.java.


Lataa ppt "2.9.2008ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int."

Samankaltaiset esitykset


Iklan oleh Google