10 javan valintarakenteet
This presentation is the property of its rightful owner.
Sponsored Links
1 / 11

10. Javan valintarakenteet PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on
  • Presentation posted in: General

10. Javan valintarakenteet. Sisällys. if - ja if - else -lauseet. Orpo else . Valintaa toisin: switch -lause. if (ehto) {// true lause 1; ... lause n ; }. if (ehto) {// true lause 1; ... lause n ; } else {// false lause 1; ... lause m ; }.

Download Presentation

10. Javan valintarakenteet

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


10 javan valintarakenteet

10. Javan valintarakenteet


Sis llys

Sisällys

  • if- ja if-else-lauseet.

  • Orpo else.

  • Valintaa toisin: switch-lause.


If ja if else lauseet

if (ehto) {// true

lause 1;

...

lause n;

}

if (ehto) {// true

lause 1; ...

lause n;

}

else {// false

lause 1; ...

lause m;

}

if- ja if-else-lauseet

  • Lähes samoin kuin pseudokoodissa. Ehtolauseke esitettävä Javan operaatioin.

  • Jos n = 1 tai m = 1, niin koottua lausetta ei tarvita.


If ja if else lauseet1

if- ja if-else-lauseet

/* Tutkitaan ovatko luvut yhtä suuret.

*/

public class Samatko {

public static void main(String[] args) {

// Esitellään ja alustetaan luvut.

int luku1 = 1;

int luku2 = 3;

// Vertaillaan.

if (luku1 == luku2)

System.out.println("Luvut yhtä suuret.");

else

System.out.println("Luvut eri suuret.");

}

}


If ja if else lauseet2

if- ja if-else-lauseet

public class PolttaaPolttaa {

public static void main(String[] args) {

int lampo = 26;// Myös lämpö-tunnus toimisi.

if (lampo > 15)// > 15

if (lampo < 25)// 15 < lampo < 25

System.out.println("Sopiva!");

else// >= 25

System.out.println("Alkaa olla liian kuuma!");

else// <= 15

System.out.println("Alkaa olla liian kylmä!");

}

}


Orpo else

Orpo else

  • Valintarakenteita yhdistettäessä ei ole aina selvää mihin if-osaan else-osa liittyy.

  • Orpo else -ongelma (dangling else): Onko if (ehto) if (ehto) lause x; else lause y;

    if (ehto)if (ehto)

    if (ehto) if (ehto)

    lause x; vai lause x;

    elseelse

    lause y; lause y;


Orpo else1

Javassa orpo else-osa liittyy aina lähimpään vapaaseen if-osaan.

if (ehto)

if (ehto)

lause x;

else

lause y;

Sisentämällä valinta-rakenteista saadaan ymmärrettävämpiä.

Koodia muotoilemalla ei kuitenkaan voida määrätä mihin if-osaan orpo else liittyy.

Koottuja lauseita käyttämällä voidaan vaikuttaa oletussuoritus-järjestykseen.

Orpo else


Orpo else2

if (ehto)

if (ehto)

lause x;

else

lause y;

else liittyy jälkimmäiseen if-osaan.

if (ehto) {

if (ehto)

lause x;

}

else

lause y;

else liittyy ensimmäiseen if-osaan.

Orpo else


Switch lause

switch (arvo) {

case vakio 1:

lause k; ...

break;

case vakio 2:

lause l; ...

break;

...

default:

lause m; ...

break;

}

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.

switch-lause


Switch lause1

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-else-rakenteilla.

if (valinta == LISAA) {

System.out.println("Lisään..."); …

}

else if (valinta == POISTA) {

System.out.println("Poistan..."); …

}

else if (valinta == HAE)

System.out.println("Haen..."); …

}

else if (valinta == LOPETA) {

System.out.println("Lopetan..."); …

}

else

System.out.println("Virhe.");

}

}


Switch lause2

switch-lause

// Valitaan toiminto switch-rakenteella.

switch (valinta) {

case LISAA:

System.out.println("Lisään..."); …

break;

case POISTA:

System.out.println("Poistan..."); …

break;

case HAE:

System.out.println("Haen..."); …

break;

case LOPETA:

System.out.println("Lopetan..."); …

break;

default:

System.out.println("Virhe.");

break;

}


  • Login