Java-kielen perusteita



Samankaltaiset tiedostot
Java-kielen perusteita

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

Java-kielen perusteet

Java-kielen perusteet

13. Loogiset operaatiot 13.1

Lauseet. Ehdollinen lause. Tämän osan sisältö. Ehdollinen lause. Esimerkkejä. Yksinkertainen ehto. Lohkosulut ja sisennys. Ehdollinen lause if

13. Loogiset operaatiot 13.1

Ehto- ja toistolauseet

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

11. Javan valintarakenteet 11.1

Java-kielen perusteita

11. Javan valintarakenteet 11.1

Ehto- ja toistolauseet

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Metodien tekeminen Javalla

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Java-kielen perusteet

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Vertailulauseet. Ehtolausekkeet. Vertailulauseet. Vertailulauseet. if-lauseke. if-lauseke. Javan perusteet 2004

Taulukoiden käsittely Javalla

5/20: Algoritmirakenteita III

Rajapinta (interface)

Python-ohjelmointi Harjoitus 2

Listarakenne (ArrayList-luokka)

Luokka Murtoluku uudelleen. Kirjoitetaan luokka Murtoluku uudelleen niin, että murtolukujen sieventäminen on mahdollista.

Ohjelmointiharjoituksia Arduino-ympäristössä

public static void main (String [] args)

Lista luokan sisällä

7. Näytölle tulostaminen 7.1

11. Javan toistorakenteet 11.1

Tietotyypit ja operaattorit

Olio-ohjelmointi Javalla

812341A Olio-ohjelmointi, Olio-ohjelmoinnin peruskäsitteet ja Java-kieli

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Sisällys JAVA-OHJELMOINTI Osa 3: Laskennan ohjaus. Lohkolause (block) Peräkkäinen laskenta. Lohkon käyttö. Esimerkki

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1

Luokan muodostimet (Constructors)

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Sisällys. 16. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. Aritmetiikkaa toisin merkiten

Muuttujat ja kontrolli. Ville Sundberg

16. Ohjelmoinnin tekniikkaa 16.1

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

YHTEYSSUHDE (assosiation)

16. Ohjelmoinnin tekniikkaa 16.1

8. Näppäimistöltä lukeminen 8.1

Sisällys. 17. Ohjelmoinnin tekniikkaa. Aritmetiikkaa toisin merkiten. for-lause lyhemmin

Ohjelmoinnin perusteet Y Python

Javan GUI Scratchaajalle

Ohjelmoinnin perusteet, kurssikoe

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

KOHDELUOKAN MÄÄRITTELY

Sisällys. 11. Javan toistorakenteet. Laskurimuuttujat. Yleistä

JAVA-OHJELMOINNIN PERUSTEET. Sisältö 1. JAVA OHJELMOINTI LÄHTEITÄ HARJOITUKSET MUUTAMA MALLIRATKAISU...

Palautetta viime luennosta

Metodien tekeminen Javalla

1. ohjelman selitystä Muutamien ohjelman yksityiskohtien läpikäyntiä

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Ohjelmointi 2 / 2010 Välikoe / 26.3

17. Javan omat luokat 17.1

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

1. Omat operaatiot 1.1

14. Hyvä ohjelmointitapa 14.1

811120P Diskreetit rakenteet

Ohjelmoinnin peruskurssi Y1

Mitä poikkeuskäsittely tarkoittaa?

Ohjelmoinnin perusteet Y Python

20. Javan omat luokat 20.1

Tietorakenteet (syksy 2013)

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

8. Näppäimistöltä lukeminen 8.1

on ohjelmoijan itse tekemä tietotyyppi, joka kuvaa käsitettä

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

ITKP102 Ohjelmointi 1 (6 op)

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Tietojen syöttäminen ohjelmalle. Tietojen syöttäminen ohjelmalle Scanner-luokan avulla

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet, 1. välikoe

13. Hyvä ohjelmointitapa (osa 1) 13.1

Ohjelmoinnin perusteet Y Python

// Tulostetaan double-tyyppiseen muuttujaan "hinta" tallennettu // kertalipun hinta ja vaihdetaan riviä. System.out.printf("%.1f euros.

Merkkien ja merkkijonojen käsittelyä Javalla

Poikkeustenkäsittely

Ohjausrakenteet. Valinta:

Ohjelmoinnin peruskurssi Y1

C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. C-ohjelma. Operaatioiden suoritusjärjestys

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Ohjelmoinnin perusteet Y Python

Merkkijonon tutkiminen matches-metodilla

815338A Ohjelmointikielten periaatteet

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

Ohjelmoinnin peruskurssi Y1

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

1.3 Lohkorakenne muodostetaan käyttämällä a) puolipistettä b) aaltosulkeita c) BEGIN ja END lausekkeita d) sisennystä

12. Näppäimistöltä lukeminen 12.1

Transkriptio:

Java-kielen perusteita valintalauseet 1

Johdantoa kontrollirakenteisiin Tähän saakka ohjelmissa on ollut vain peräkkäisyyttä eli lauseet on suoritettu peräkkäin yksi kerrallaan Tarvitsemme myös valintaa ja toistoa Ensimmäisenä käsittelemme ehtolauseen (eli valinnan) Ehtolausetta varten tarvitsemme ensin vertailu- ja loogisen lausekkeen ymmärryksen 2

Vertailulauseke Vertailulausekkeella tarkoitetaan lauseketta, jossa kahta arvoa (esimerkiksi lukua, muuttujan arvoa tai lausekkeen arvoa) verrataan toisiinsa Lausekkeen arvon on totuusarvo (boolean): totta (true) tai epätotta (false) Esim. vertailulauseke: Onko muuttujan a sisältämä arvo pienempi kuin muuttujan b arvo? kirjoitetaan a < b Lausekkeen arvo on joko tosi tai epätosi, eli true tai false esim. Vertailulausekkeen 1<2 arvo on true 3

Vertailuoperaattorit (6.1.2) Vertailuoperaattorit ovat Javassa seuraavat: == yhtäsuuri kuin!= erisuuri kuin > suurempi kuin >= suurempi tai yhtä suuri kuin < pienempi kuin <= pienempi tai yhtä suuri kuin Esim. int rahaa = 2, velkaa = 5, palkka = 5; rahaa <= palkka velkaa < rahaa palkka <= velkaa // onko true vai false? // onko true vai false? // onko true vai false? Soveltuu kahden arvon vertailuun 4

Vertailulauseke jatkuu Vertailulausekkeen arvo on totuusarvo boolean, jonka voi esimerkiksi sijoittaa boolean-tyyppisen muuttujan arvoksi: int luku1 = 5, testi = 4; boolean onkosuurempi = false; onkosuurempi = luku1 > testi; // true luku1 = 8; onkosuurempi = (luku1 > 5); // true 5

Loogiset lausekkeet (6.1.3) Useampia vertailuja voidaan liittää yhteen loogisten operaattoreiden avulla looginen lauseke, joka edustaa arvoa true tai false Jos rahaa > velkaa tai palkka + rahaa >= velkaa niin voit maksaa velkasi viimeistään palkkapäivänä Loogiset operaattorit:! negaatio, vastakohta (not) // totuusarvon vastakohta && ehdollinen JA (and) // true, jos molemmat tosia & ehdoton JA ehdollinen TAI (or) // true, jos jompikumpi on tosi ehdoton TAI ^ poissulkeva tai, JOKO TAI // true, jos vain ja ainoastaan // toinen ehdoista on tosi 6

Ehdollisen ja ehdottoman ero && ja eli ehdollisissa operaatioissa arvon kehittäminen lopetetaan heti, kun tulos voidaan päätellä & ja - tutkitaan aina loppuun saakka Yleensä käytetään ehdollisia muotoja ( &&, ) 7

Esimerkkejä: int a = 5; int b = 7; boolean c = false; c =!c; System.out.println("1 = " + c); // mitä tulostuu? c = a < b && b > 0; System.out.println("2 = " + c); c = (a == b) (b > 0); System.out.println("3 = " + c); c = a < 0 && b > 0 b < a; System.out.println( 4 = " + c); Loogisen lausekkeen vertailulausekkeet voidaan ympäröidä suluilla loogisesta lausekkeesta tulee luettavampi. 8

Loogisen lausekkeen arvon laskenta Loogisen lausekkeen arvoon voi vaikuttaa suluilla Esim. Looginen operaattori && on vahvempi kuin Esim int a = 5, b = 7; boolean c = false; c = ( a < b b < 0) && b < a; System.out.println("5 = " + c); tulostuu: 5 = false c = a < b b < 0 && b < a; System.out.println("6 = " + c); tulostuu: 6 = true c =!(a < b && b > 0); System.out.println("7 = " + c); tulostuu: 7 = false // sama asia c = a >= b b <= 0; System.out.println("8 = " + c); tulostuu: 8 = false 9

Valintalauseet if- ja switch-case Ohjelmointi - Irene Vilpponen, Seija Lahtinen 10

Valintalause (if-else) (6.2.1) Syntaksi: if ( ehtolauseke ) lause tai if ( ehtolauseke ) lause else lause ehtolauseke: on joko vertailu tai looginen -lauseke Esim. loytyi!= false // vertailu lauseke a < b && b > c // looginen lauseke 11

Valintalause (if-else), jatkuu if ( ehtolauseke ) lause Semantiikka eli merkitys: ensin ratkaistaan ehtolausekkeen arvo. Jos arvo on true suoritetaan lause. Jos ehtolausekkeen arvo on false hypätään lauseen yli if ( ehtolauseke ) lause else lause Semantiikka eli merkitys: ensin ratkaistaan ehtolausekkeen arvo. Jos arvo on true suoritetaan lause ja hypätään else-haaran (else-sana ja lause) yli. Jos ehtolausekkeen arvo on false suoritetaan else-sanan jälkeen oleva lause. 12

Valintalause (if-else), jatkuu.. lause voi olla jokin seuraavista: o sijoituslause ; o ehtolause o toistolause o metodin kutsu o tyhjälause ( ;) o koottulause koottulause: Alkaa aaltosululla { ja loppuu aina aaltosulkuun } voi sisältää yhden tai useamman lauseen { lause lause lause... } 13

Valintalause (if-else), jatkuu Esim. int a = 4, b; b = 4; if (a == b) System.out.println(a + = + b); else System.out.println(a +!= + b); tulostuu: 4 = 4 14

Valintalause (if-else), jatkuu Esim. int a = 5, b = 7; if ( a < b) // mitä ohjelmapätkä tulostaa? { } else { } System.out.println( a + " < " + b); System.out.println("tai"); System.out.println( b + " >= " + a); System.out.println( a + " >= " + b); System.out.println("tai\n" + b + " <= " + a); // Mitä ohjelmapätkä tulostaisi, jos a:n arvo olisi 10 ja b:n // arvo 7? // Entä mitä tulostuu, kun a = 6 ja b = 6 15 Ohjelmointi - Irene Vilpponen, Seija Lahtinen

Valintalause (if-else), jatkuu Esim. Scanner input = new Scanner(System.in); int luku; System.out.println("Anna positiivinen kokonaisluku:"); luku = input.nextint(); if (luku > 0) { System.out.println("Kiitos, annoit positiivisen kokonaisluvun"); System.out.println(luku + "*" + 2 + " = " + luku*2); } else System.out.println("Ei kiitos, et antanut positiivista + kokonaislukua!"); 16

Luentoesimerkki /* Tee ohjelma, joka tuottaa arvosanan käyttäjältä pyydetyn * pisteen perusteella: * * alle 50 hylätty * 50 59 T1 * 60 68 T2 * 69 76 H3 * 77 84 H4 * 85 tai yli K5 */ 17

Esimerkin ratkaisu package kokeilu; import java.util.scanner; public class ArvosanaOhjelma { public void aja() { // määritellään muuttujat, joita tarvitaan Scanner input = new Scanner(System.in); int pisteet; String arvosana; // pyydetään pisteet System.out.println("Anna kokeen pisteet:"); pisteet = input.nextint(); 18

aja-metodi jatkuu.. if (pisteet < 50) // onko pisteet < 50? arvosana = "Hylätty"; else if (pisteet <= 59) // onko pisteet välillä 50 59? arvosana = "T1"; else if (pisteet <=68) // onko pisteet välillä 60 68? arvosana = "T2"; else if (pisteet <= 76) // onko pisteet välillä 69 76? arvosana = "H3"; else if (pisteet <=84) // onko pisteet välillä 77 84? arvosana = "H4"; else arvosana = "K5"; // pisteet >= 85 } System.out.println("Pisteet: " + pisteet + " ja arvosana: " + arvosana); 19

Ohjelman ratkaisu jatkuu.. } public static void main(string[] args) { ArvosanaOhjelma a = new ArvosanaOhjelma(); a.aja(); } Harjoitus: Tee ohjelma, OstovoimaOhjelma, joka kysyy käyttäjän kuukausipalkan ja kertoo sen ostovoiman. Jos palkka on 0-1500, niin tulostetaan Kaurapuuro on ihan hyvää. Jos palkka on 1501 2700, niin tulostetaan Kerran vuodessa Kanarialle Jos palkka on 2701-3600, niin tulostetaan Joskus jopa Meksikoon Jos palkka on yli 3600, niin tulostetaan Minne mieli tekeekin Muuten tulostetaan Syöttämäsi palkka on virheellinen. 20 Ohjelmointi - Irene Vilpponen, Seija Lahtinen

Switch-case-lause (6.2.3) Syntaksi: switch (valintaa kontrolloiva lauseke ) { case vakio1: } case vakio2: default: Valintaa kontrolloiva lauseke voi olla tietyyppiä: char, byte, short tai int Vakio: on vakioarvo, jonka pitää olla samaa tietotyyppiä kuin valintaa kontrolloiva lauseke Sama vakion arvo voi esiintyä vain kerran. 21

Switch-case-lause jatkuu.. Semantiikka eli toiminta: Ensin valintaa kontrolloiva lauseke ratkaistaan Sitten siirrytään siihen valintakohtaan (case vakio), jonka vakion arvo on yhtäsuuri kuin lausekkeen arvo suoritetaan valintakohdan lauseet, kunnes vastaan tulee break-lause tai switch-lauseen oikea sulku 22

Switch-case-lause jatkuu Muita sääntöjä: default (= oletus)-osa saa esiintyä vain kerran eikä ole pakollinen jos default-osa on olemassa ja lausekkeen arvo ei ole yhtäsuuri kuin mikään vakio, suoritetaan default-osan lauseet jos default-osa puuttuu, ja mikään vakio ei ole yhtäsuuri kuin lausekkeen arvo, switch-lause ei tee mitään jos valinnan lausejonon lopusta puuttuu break-lause, suoritus jatkuu seuraavan valinnan lauseista, kunnes vastaan tulee break-lause tai switch-lauseen oikea sulku 23

Switch-case-lause esimerkki public class SwitchCaseLause { public void aja(){ Scanner input = new Scanner(System.in); int luku; System.out.print ("Anna luku: "); luku = input.nextint(); } switch ( luku ) { case 0: System.out.println ("luku == 0"); break; case 1: case 2: case 3: System.out.println ("1 <= luku <= 3"); break; default: System.out.println("luku < 0 tai luku > 3"); } 24

Harjoitus: Tee ohjelma YoKoeKommentti.java, joka pyytää käyttäjältä kirjaimen, ja kirjoittaa ko. arvosanaa vastaavan kommentin seuraavasti: kirjain i tai I a tai A b tai B c tai C m tai M l tai L komentti Valitettavasti tuli hylätty Läpi meni, mutta niukasti Tuloksesi oli tyydyttävä Selvisit aivan kohtuullisesti Hienosti meni!! Upeaaaaaa mahtavaa. 25