11. Javan valintarakenteet 11.1

Samankaltaiset tiedostot
11. Javan valintarakenteet 11.1

12. Javan toistorakenteet 12.1

12. Javan toistorakenteet 12.1

Java-kielen perusteita

13. Loogiset operaatiot 13.1

Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet:

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

13. Loogiset operaatiot 13.1

11. Javan toistorakenteet 11.1

14. Hyvä ohjelmointitapa 14.1

13. Hyvä ohjelmointitapa (osa 1) 13.1

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

Java-kielen perusteet

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 15.3

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

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

Metodien tekeminen Javalla

5/20: Algoritmirakenteita III

Sisällys. 15. Lohkot. Lohkot. Lohkot

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

7. Näytölle tulostaminen 7.1

Ohjausrakenteet. Valinta:

1. Omat operaatiot 1.1

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

Lohkot. if (ehto1) { if (ehto2) { lause 1;... lause n; } } else { lause 1;... lause m; } 16.3

Ehto- ja toistolauseet

Java-kielen perusteet

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

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

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

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

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

16. Ohjelmoinnin tekniikkaa 16.1

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

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

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

Ohjelmointi 2 / 2010 Välikoe / 26.3

16. Ohjelmoinnin tekniikkaa 16.1

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

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

Lista luokan sisällä

Ohjelmoinnin perusteet, syksy 2006

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

Yleistä. Nyt käsitellään vain taulukko (array), joka on saman tyyppisten muuttujien eli alkioiden (element) kokoelma.

Muuttujat ja kontrolli. Ville Sundberg

Olio-ohjelmointi Javalla

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

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

Tietorakenteet (syksy 2013)

5. HelloWorld-ohjelma 5.1

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Mikä yhteyssuhde on?

Ohjelmointi 1 / 2009 syksy Tentti / 18.12

20. Javan omat luokat 20.1

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

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

19. Olio-ohjelmointia Javalla 19.1

Sisällys. 19. Olio-ohjelmointia Javalla. Yleistä. Olioiden esittely ja alustus

58131 Tietorakenteet ja algoritmit (syksy 2015)

9. Periytyminen Javassa 9.1

Ohjelmointiharjoituksia Arduino-ympäristössä

17. Javan omat luokat 17.1

Sisältö. 2. Taulukot. Yleistä. Yleistä

Metodien tekeminen Javalla

Sisältö. 22. Taulukot. Yleistä. Yleistä

Luokan muodostimet (Constructors)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

9. Periytyminen Javassa 9.1

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

Seuraavassa on esimerkki for-, while- ja do-while -lauseesta:

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

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

ITKP102 Ohjelmointi 1 (6 op)

Rinnakkaisohjelmointi, Syksy 2006

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

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

Taulukoiden käsittely Javalla

4. Luokan testaus ja käyttö olion kautta 4.1

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

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

public static void main (String [] args)

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

Sisällys. 14. Poikkeukset. Johdanto. Johdanto

14. Poikkeukset 14.1

Tietorakenteet. JAVA-OHJELMOINTI Osa 5: Tietorakenteita. Sisällys. Merkkijonot (String) Luokka String. Metodeja (public)

5. HelloWorld-ohjelma 5.1

Rajapinta (interface)

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2008

14. Poikkeukset 14.1

Java kahdessa tunnissa. Jyry Suvilehto

Sisällys. 16. Lohkot. Lohkot. Lohkot

Listarakenne (ArrayList-luokka)

Harjoitus Olkoon olemassa luokat Lintu ja Pelikaani seuraavasti:

Ohjelmistojen mallintaminen, sekvenssikaaviot

812341A Olio-ohjelmointi Peruskäsitteet jatkoa

Java-kielen perusteita

Informaatioteknologian laitos Olio-ohjelmoinnin perusteet / Salo

Transkriptio:

11. Javan valintarakenteet 11.1

Sisällys If- ja if--lauseet. Orpo. Valintaa toisin: switch-lause. 11.2

Valintarakenteet Valintarakenteilla ilmaistaan formaalisti, kuinka algoritmin suoritus voi haarautua ehdosta riippuen. Tässä tärkein työkalu on if-lause, jolla kuvataan mitä täytyy tehdä, jos lauseen ehto on tosi. If-lauseen laajennos, if--lause, kuvaa kuinka algoritmi toimii, kun ehto on tosi ja epätosi. If-lause kuvaa yksi- ja -lause kaksihaaraista päätöstä. Sisäkkäisillä valintarakenteilla voidaan kuvata näitä monimutkaisempia päätöksiä. 11.3

If-lause Kuvaa yksittäisen päätöshaaran: lauseet suoritetaan vain ehdon toteutuessa. Sulkujen sisällä olevan ehto palauttaa totuusarvon true toteutuessaan. Aaltosulkeet voidaan jättää pois, jos rakenteeseen liittyy yksi lause (n = 1). Yleisesti: { lause 1;... lause n; Esimerkki: kyllä if (lkm > 0) { ka = summa / lkm; System.out.println(ka); ehto lause 1 lause n ei 11.4

If-lause // Tutkitaan ovatko luvut yhtä suuret. public class Samatko1 { public static void main(string[] args) { // Esitellään ja alustetaan luvut. int luku1 = 1; int luku2 = 1; // Tulostetaan, jos yhtä suuret. if (luku1 == luku2) System.out.println("Yhtä suuret."); Oheinen ohjelma tulostaa viestin vain, jos luvut ovat yhtä suuret. Eri suuruus jätetään huomiotta. Myös yksittäinen ohjausrakenteeseen liittyvä lause sisennetään. 11.5

If--lause Kuvaa kaksihaaraisen päätöksen. Lauseet suoritetaan vaihtoehtoisesti: ehdon ollessa tosi suoritetaan if-osa, muuten -osa. Jos n = 1 tai m = 1, voidaan aaltosulkeet jättää pois. Yleisesti: { lause 1;... lause n; { lause 1;... lause m; kyllä ei lause 1 ehto lause 1 lause n Esimerkki: lause m if (lkm > 0) { ka = summa / lkm; System.out.println(ka); System.out.println("Ei lukuja!"); 11.6

If--lause // Tutkitaan ovatko luvut yhtä suuret. public class Samatko2 { public static void main(string[] args) { // Esitellään ja alustetaan luvut. int luku1 = 1; int luku2 = 2; // Tulostetaan, jos yhtä suuret. if (luku1 == luku2) System.out.println("Yhtä suuret."); System.out.println("Eri suuret."); Oheinen ohjelma kertoo ovatko luvut yhtä vai eri suuret. Else-osa suoritetaan, kun lauseke luku1 == luku2 on epätotta (false). 11.7

Sisäkkäiset valintarakenteet If- ja if-lauseita voidaan yhdistää monimutkaisemmiksi valinnoiksi. Sisennys auttaa sisäkkäisyyden ymmärtämistä. public class PolttaaPolttaa { public static void main(string[] args) { int lampo = 26; if (lampo > 15) // > 15 if (lampo < 25) // 15 < lampo < 25 System.out.println("Sopiva."); // >= 25 System.out.println("Liian kuuma!"); // <= 15 System.out.println("Liian kylmä!"); 11.8

Orpo Valintarakenteita yhdistettäessä ei ole aina selvää mihin ifosaan -osa liittyy. Orpo -ongelma (dangling ): Onko lause x; lause y; lause x; vai lause x; lause y; lause y; 11.9

Orpo Javassa orpo -osa liittyy aina lähimpään vapaaseen if-osaan. lause x; lause y; Sisentämällä valintarakenteista saadaan luettavampia. Koodia muotoilemalla ei kuitenkaan voida määrätä mihin if-osaan orpo liittyy. Koottuja lauseita käyttämällä voidaan vaikuttaa oletussuoritusjärjestykseen. 11.10

Orpo lause x; lause y; Else liittyy jälkimmäiseen if-osaan. { lause x; lause y; Else liittyy ensimmäiseen if-osaan. 11.11

switch-lause switch (arvo) { case vakio 1: lause k;... case vakio 2: lause l;...... default: lause m;... Valinta arvojen tai vakioiden avulla. Arvon oltava char, byte, short tai int. Javan 1.7-versiosta alkaen String-tyyppi sallittu. Jos break-lause puuttuu jostakin valinnasta, niin tästä kohdasta alkanut suoritus jatkuu, kunnes kohdataan seuraava break-lause tai valintarakenne loppuu. break-lauseen unohtuminen jostakin valinnasta on varsin yleinen ohjelmointivirhe. default-osa suoritetaan, jos mitään muuta lauseen osaa ei suoriteta. Lause sopii hyvin erilaisten valikoiden toteuttamiseen. 11.12

switch-lause // Ohjelma, jossa on valikko. public class Rekisteri { public static void main(string[] args) { // Ohjelman tuntemat // komennot vakioina final char LISAA = 'l'; final char POISTA = 'p'; final char HAE = 'h'; final char LOPETA = 'e'; // Muuttuja, johon luetaan käyttäjän // näppäimistöltä antama valinta. char valinta; // Valitaan toiminto if--rakenteilla. if (valinta == LISAA) { System.out.println("Lisään..."); if (valinta == POISTA) { System.out.println("Poistan..."); if (valinta == HAE) System.out.println("Haen..."); if (valinta == LOPETA) { System.out.println("Lopetan..."); System.out.println("Virhe."); 11.13

switch-lause // Valitaan toiminto switch-rakenteella. switch (valinta) { case LISAA: System.out.println("Lisään..."); case POISTA: System.out.println("Poistan..."); case HAE: System.out.println("Haen..."); case LOPETA: System.out.println("Lopetan..."); default: System.out.println("Virhe."); 11.14