Tuli vihdoinkin aloitettua java-kurssit lukiossa. Tällä hetkellä yritän koodata pientä ohjelmaa joka laskee kuinka monta päivää on jouluun jäljellä. Käyttäjän on laitettava kuukausi aakkosina ja päiväys numerona.
Esim Tammikuu=a, Helmikuu=b jne jne.
Kaikki oikeastaan näkyy jo koodissa. Ongelmanahan on että lukija.nextInt() ottaa vain kokonaislukuja, Eikä aakkosia. Jos tuohon yrittää laittaa lukuja.nextLine(), virheenä on "incompatible types".
Ensimmäiseksi kannattaa poistaa skandimerkit muuttujan nimestä. Ne ovat vaikeuksien kerjäämistä. Seuraavaksi muuttujien a-l määrittely on turha. Ainakin kertolaskuna pelkän ykkösen kanssa. Eikä nykyisessä versiossa niitä ei käytetä mihinkään.
Ensimmäisessä lukija.nextInt() -kohdassa metodi lukee yhden kokonaisluvun. Kun taasmerkkejä luetaan päätteeltä, niin sijoitetaan joko merkiksi (yksi) tai merkkijonoksi (monta merkkiä). Muuttuja on kyseistä arvoa yleisesti kuvaava nimitys. Kun luetaan esimerkiksi muuttujalle arvo (=kuukausi) sisältö, niin muuttuja arvo sisältää tiedon kuukaudesta. (Toivottavasti sisältö on oikein a-l, eikä esimerkiksi z tai #.)
Kokeile ensimmäiseksi lukea ohjelmaan kuukausi ja paiva (Huom. Nämä olisivat paremmat muuttujanimet), sitten voit tulostaa ne sellaisenaan. Sen jälkeen sopiva voit miettiä, miten näistä saadaan selvitettyä Jouluaaton ja syötetyn päivän välinen ero.
--Ari
Viimeksi muokannut tkt, 16.12.2012 klo 22.49. Yhteensä muokattu 1 kertaa.
Jossakin kohtaa aikaisemmin ohjelmassa tulee määritellä temp-muuttuja (char temp=0;). Muuttuja voi olla joku muukin, kuin temp, mutta se on nyt tässä esimerkkinä. Vaihda sen nimeksi vaikka kuukausi (tai arvo, kuten nyt sinulla on.)