Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet

Slides:



Advertisements
Samankaltaiset esitykset
Tuloksellinen Java-ohjelmointi Luku 3 Luokkien käyttäminen
Advertisements

15. Loogiset operaatiot.
© Jukka Juslin1 Ohjelmointitaito (ict1td002, 12 op) Opintojakson esittely Kevät 2008 Jukka Juslin, Raine Kauppinen Tuloksellinen Java-ohjelmointi.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Lisäosa: GUI
© Jukka Harju, Viittausmuuttujat. © Jukka Harju, Viittaukset •Viittausmuuttuja sisältää tiedon siitä missä muistipaikassa olio.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 13 Monimuotoisuus.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 12 Periytyminen.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi opas ammattimaiseen osaamiseen Luku 6 (osittain) Tiedostot.
1 Ehtolausekkeet Ehdot, valintalausekkeet Boolean-algebra.
Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1
Tuloksellinen Java-ohjelmointi Luku 9 Taulukot ja perustietorakenteet
Jukka Juslin Poikkeukset ja niiden paikallistaminen * Jukka Juslin * Liittyy oppikirjan lukuun 11.
Taulukot: Array Taulukko Javassa pitää aina perustaa (new)
22. Taulukot.
Ohjelmointitaito (ict1td002, 12 op) Syksy 2008
© Jukka Harju, Jukka Juslin
Näytölle tulostaminen. 7.2 Sisällys System.out.println - ja System.out.print -operaatiot. Tulostus erikoismerkeillä. Edistyneempää tulosteiden.
© Jukka Harju, Jukka Juslin1 Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Ehto- ja toistolauseet.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Ehto- ja toistolauseet
16. Lohkot Sisällys Tutustutaan lohkoihin. Muuttujien ja vakioiden näkyvyys sekä elinikä erityisesti operaation lohkossa. Nimikonfliktit. Muuttujat.
© Jukka Harju, Jukka Juslin Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 9 Poikkeuskäsittely.
Poikkeustenkäsittely  Mitä poikkeustenkäsittely tarkoittaa?  Poikkeuksen käsitteleminen  Poikkeusluokkien hierarkia  Poikkeuksen heittäminen 1.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Luku 4 Ehto- ja toistolauseet Tuloksellinen Java-ohjelmointi.
Toiston tekeminen Javalla  Mikä toistorakenne on?  while toistorakenne  do-while toistorakenne  for toistorakenne 1.
Ohjelmoinnin tekniikkaa Sisällys for -lause lyhemmin. Vaihtoehtoisia merkintöjä aritmeettisille lauseille. Useiden muuttujien esittely.
Ohjelman perusrakenteet
Pseudokoodi Tietokoneohjelmien perusidea:
13. Hyvä ohjelmointitapa (osa 1)
© Jukka Harju, Jukka Juslin
1 Kertaus koetta varten oleellisista asioista Jukka Juslin.
Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 2 Ensimmäiset ohjelmat © Jukka Harju, Jukka Juslin.
ict1td002 - Copyright Raine Kauppinen 1 Alkuarvot ja tyyppimuunnokset (1/5)  Aiemmin olemme jo antaneet muuttujille alkuarvoja, esimerkiksi: int.
11. Javan toistorakenteet
5. Kapselointi Yleistä Kapseloinnilla (encapsulation) tarkoitetaan luokan tietojen ja toimintojen pakkaamista yhdeksi suojatuksi kokonaisuudeksi.
10. Abstrakti luokka Johdanto Abstrakti luokka (abstract class) poikkeaa konkreettisesta luokasta (ei-abstrakti luokka) siten, että siitä ei.
@ Leena Lahtinen OHJELMAN OSITTAMINEN LUOKKA ATTRIBUUTIT METODIT.
Näppäimistöltä lukeminen Sisällys Arvojen lukeminen näppäimistöltä yleisesti. Arvojen lukeminen näppäimistöltä Java-kielessä. In -luokka.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi Lisäosa: GUI Tuloksellinen Java-ohjelmointi.
© Jukka Juslin1 Tiedostot Tuloksellinen Java-ohjelmointi.
Ohjelmointitaito (ict1td002, 12 op) Kevät 2008 Raine Kauppinen
@ Leena Lahtinen Toistorakenne Ohjelmassa toistetaan tiettyjä toimenpiteitä monta kertaa peräkkäin Toisto noudattaa sille kuuluvia tarkkoja standardoituja.
@ Leena Lahtinen TIETOKONEOHJELMAN RAKENNE OHJELMALLA ON KAKSI OSAA:  MÄÄRITYSOSA TIETOJEN KUVAUKSIA VARTEN  SUORITUSOSA TIETOJEN KÄSITTELYÄ.
© Jukka Juslin1 Osio2 Olio-ohjelmointi: Merkkijonot eli Stringit Jukka Juslin.
© Jukka Harju, Jukka Juslin1 Tuloksellinen Java-ohjelmointi HashMap, Properties, Logger, etc Tuloksellinen Java-ohjelmointi.
Tuloksellinen Java-ohjelmointi Luku 2 Ensimmäiset ohjelmat
Olioiden taulukointi Perustaulukon käyttö Luokan ilmentymät voidaan tallettaa taulukkoon samoin kuin muuttujat Esimerkki talletetaan taulukkoon opintojaksojen.
Antti-Jussi Lakanen Nuorten peliohjelmointi 2009 / Jyväskylän yliopisto.
Kontrollirakenteet laajemmin
For-toistolausetMyn1 for-toistolause for-lauseen rakenne on: for(aloituslauseke; lauseke; lopetuslauseke) lause; Puolipisteiden on oltava aina paikoillaan,
Visual Basic -ohjelmointi
Javan oliovirrat eli oliotiedostojen käsittely. Olio- eli objektitiedostojen käsittely Käsittely täysin samanlaista kuin muiden tiedostojen 1.Otetaan.
Ohjelmointi 1. toinen luento1 Taulukot n Kiinteät taulukot: alkioiden määrä tiedetään Dim intCount(12) As Integer 0 indeksit saavat arvoja 0-12 (Option.
14. Poikkeukset Sisällys Johdanto poikkeuksiin. Poikkeusten käsittely: − Poikkeusten käsittely paikallisesti. − Poikkeusten heittäminen. Exception.
Ohjausrakenteet Määräävät ohjelmakoodin suoritusjärjestyksen Ehtolause if – else on muotoa if (lauseke) lause1 else lause2 Jos lauseke on tosi, niin suoritetaan.
While-toistolause while-lause on alkuehtoinen toistolause. Alkuehtoista toistolausetta käytettäessä järjestelmä päättelee ehtolausekkeen arvon ensin ja.
13. Loogiset operaatiot.
15. Lohkot.
do-while -toistolause
Toisto Toistolausekkeet for, while(ehto){…} ja do {…} while(ehto)
do-while -toistolause
16. Ohjelmoinnin tekniikkaa
11. Javan valintarakenteet
12. Javan toistorakenteet
15. Lohkot.
12. Javan toistorakenteet
Kontrollirakenteet laajemmin
13. Loogiset operaatiot.
12. Javan toistorakenteet
16. Ohjelmoinnin tekniikkaa
Esityksen transkriptio:

Java-ohjelmointi Opas ammattimaiseen osaamiseen Luku 4 Toistolauseet © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Nämä kalvot on lisensoitu Creative Commons Attribution-ShareAlike 1.0 -lisenssillä. Lisäys edelliseen lisenssiin: Kalvojen muokkaaminen on sallittu vain opettajille, joiden kursseilla käytetään kurssikirjana Tuloksellinen Java-ohjelmointi - tai Java ohjelmointi opas ammattimaiseen osaamiseen -kirjaa. © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Missä ollaan? ehtolausekkeet if-ehtolause Muut ehtolauseet while-lause Muut toistolauseet © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Toistolauseet Toistolauseet mahdollistavat tietyn ohjelmalohkon suorittamisen useita kertoja. Toistolauseesta käytetään usein nimitystä silmukka tai luuppi. Myös toistolauseita kontrolloidaan ehtolausekkeiden avulla. Javassa on kolmenlaisia toistolauseita: while-lause do-while -lause for-lause © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin while-lause while-lauseella on seuraava syntaksi: while ( ehto ) { lauseet; } Jos ehto on tosi (true), lauseet (ohjelmalohko) suoritetaan Lauseiden suorittamisen jälkeen ehto evaluoidaan uudestaan. Jos ehto on edelleen tosi, lauseet suoritetaan taas. Lauseita suoritetaan toistuvasti niin kauan kunnes ehdosta tulee epätosi (false). © Jukka Harju, Jukka Juslin

while-lauseen logiikka lauseet true false ehto © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin while-lause Esimerkki while-lauseesta: Scanner scan = new Scanner(System.in); int luku = scan.nextInt(); while (luku > 0) { System.out.println(luku); luku = scan.nextInt(); } Jos while-lauseen ehto on heti alussa epätosi, ei lauseeseen liittyvää ohjelmalohkoa suoriteta kertaakaan. Katso myös kirjan esimerkki 4.5. © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Ikuiset silmukat while-silmukan ohjelmalohkossa on pakko jossain vaiheessa tehdä ehdosta false- arvoinen. Jos näin ei käy, suoritetaan silmukkaa ikuisesti. Tämä on yleinen looginen virhe ohjelman suunnittelussa / toteutuksessa. © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Ikuiset silmukat Esimerkki ikuisesta silmukasta eli “ikiluupista”: int laskuri = 1; while (laskuri < 100) { System.out.println(laskuri); laskuri = laskuri - 1; } © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Sisäkkäiset silmukat Silmukoita voidaan kirjoittaa useita sisäkkäin, eli silmukan ohjelmalohko voi sisältää toisen silmukan. int ulompi = 10; while (ulompi > 0) { int sisempi = 10; while (sisempi > 0) { System.out.println(”Sisempi”); sisempi = sisempi - 1; } System.out.println(”Ulompi”); ulompi = ulompi - 1; © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin Missä ollaan? ehtolausekkeet if-ehtolause Muut ehtolauseet while-lause Muut toistolauseet © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin do-while -lause do-while -lauseella on seuraava syntaksi: do { lauseet; } while(ehto); Lauseet (ohjelmalohko) suoritetaan ensin kertaalleen, sitten ehto evaluoidaan. Lauseet suoritetaan toistuvasti kunnes ehdosta tulee epätosi (false). © Jukka Harju, Jukka Juslin

do-while -lauseen logiikka true ehto lauseet false © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin do-while -lause Esimerkki do-while -lauseesta: boolean totuus = false; do { System.out.println(”suoritus”); } while (totuus == true); Kuinka monta kertaa yo esimerkin tulostuslause suoritetaan? Katso myös kirjan esimerkki 4.6. © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin for-lause for-lauseella on seuraava syntaksi: for(alustus; ehto; inkrementointi) { lauseet; } Alustus suoritetaan kerran ennen kuin silmukka alkaa. Inkrementointi-osa suoritetaan jokaisen toiston lopussa. Lauseet suoritetaan kunnes ehto saa arvo false. © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin for-lauseen logiikka alustus ehdon evaluointi false lause true inkrementointi © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin for-lause for-lause on toiminnallisesti identtinen seuraavan while-lauseen kanssa: alustus; while(ehto) { lauseet; inkrementointi; } © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin for-lause Esimerkki for-lauseesta: for (int i = 0; i < 10; i++) { System.out.println(i); } Alustusosaa voidaan käyttää muuttujan esittelemiseen. Kuten while-silmukassa, for-silmukassa ehto testataan ennen silmukan rungon suorittamista. Käytä mieluiten aina aaltosulkeita JCC:n suositusten mukaisesti (myös yhden rivin mittaiset ohjelmalohkot). © Jukka Harju, Jukka Juslin

© Jukka Harju, Jukka Juslin for-lause for-lause sopii hyvin tilanteisiin, jossa suoritus halutaan toistaa tietty määrä kertoja (toistokerrat voidaan laskea tai määrittää etukäteen). for-lause on ilmaisultaan tiivis. Kaikki for-lauseet voidaan kirjoittaa myös while- lauseina. © Jukka Harju, Jukka Juslin

Ehto- ja toistolause-esimerkki import java.util.Scanner; /** * Coca-cola automaatti. * @author Jukka Juslin, Jukka Harju */ public class CokisAutomaatti { private int pullojenMaara; private double pullonHinta; public CokisAutomaatti() { pullojenMaara = 30; pullonHinta = 2.0; } public int annaKolaa(double rahaaAnnettu) { System.out.println("Vaihtorahaa saat takaisin: " + (rahaaAnnettu % pullonHinta)); return (int) (rahaaAnnettu / pullonHinta); © Jukka Harju, Jukka Juslin

Ehto- ja toistolause-esimerkki public void kaynnistaAutomaatti() { double rahaaAnnettu = 0; int saitPulloja = 0; Scanner scan = new Scanner(System.in); while (pullojenMaara > 0) { System.out.println("Anna rahaa: "); rahaaAnnettu = scan.nextDouble(); if (rahaaAnnettu >= pullonHinta) { saitPulloja = annaKolaa(rahaaAnnettu); pullojenMaara = pullojenMaara - saitPulloja; if (pullojenMaara > 0) { System.out.println("Sait " + saitPulloja + " pulloa."); } else { System.out.print( "Sold out. Pullot loppu, "); System.out.println("soita 09 11."); } System.out.println("Raha ei riittänyt."); public static void main(String[] args) { CokisAutomaatti tomaatti = new CokisAutomaatti(); tomaatti.kaynnistaAutomaatti(); © Jukka Harju, Jukka Juslin