Moi
Javalla normaalia if - else ohjelmaa tehdessä tuli ongelma kun eclipse ei jostain syystä hyväksy else:ä
Siis sana else on alle viivattu ja punainen ruksi saman rivin vieressä.Mikä tässä on vialla.
if ( valinta == 0);{ arvottu = arvaus; System.out.print(arvottu); } else if (valinta == 1); { arvottu = arvaus; System.out.print(arvottu++); }
elseä ei voi laittaa ilman ifiä.
Lopetat if:n tuolla puolipisteellä ennen { merkkiä ja ensimmäinen { } sisällä oleva lohko siis ajetaan aina.
Selvä kiitos tämä korjasi tilanteen
Hei
Tämä koodin pätkä tarkistaa ensin karkausvuoden ja pitäisi tulostaa onko oikea määrä päiviä kuukaudessa(laillinen päivämäärä).
Ongelma on siinä jos ei ole karkausvuosi ohjelma ei tulosta mitään helmikuussa = case 2:
Muut kuukaudet toimii oikein.
case 2: if (((vuosi % 4 == 0) && (vuosi % 100 != 0) || (vuosi % 400 == 0))) if ((paiva > 0) && (paiva <=29)) System.out.println(paiva + "." + kuukausi + "." + vuosi + " Päivämäärä on laillinen."); else if ((paiva > 0) && (paiva <= 28)) System.out.println(paiva + "." + kuukausi + "." + vuosi + " Päivämäärä on laillinen."); else System.out.println("Antamasi päivämäärä ei ole laillinen!"); break;
Käytä aaltosulkuja erottelemaan mitkä rivit kuuluu mihinkin iffiin ja elseen, niin varmaan huomaat vian. Nyt else ei viittaa siihen iffiin johon yrität.
Kiitos nyt koodi korjauttu, ei vielä ole asiat hallussa
Hei
Tässä koodissa tulee virheilmoitus: Strig lopeta = lukija.nextLine(); rivillä olevan lopeta sanan kohdalle ja kehotus vaihtaa nimeä, mutta jos vaihdan nimen tulee virheilmoituksia paljon lisää. En ymmärrä missä on vika.
String lopeta; while ((lopeta != "e") || (lopeta != "k")){ System.out.print("Haluatko jatkaa peliä: (k = kyllä, e = lopeta)"); String lopeta = lukija.nextLine(); if (lopeta.equals('e')) { System.out.println("Ohjelma lopetetaan."); break; } else { // Annetaan ohjeet ja kysytään luku System.out.println("Ohjelma arpoo luvun väliltä 1-100"); System.out.print("Arvaa luku: "); int valittu = lukija.nextInt();
Ota se String alusta pois.
String lopeta = lukija.nextLine(); -> lopeta = lukija.nextLine();
Kannattaisi muuten käyttää jotain IDEä, joka auttaisi noissa virheissä. Esimerkiksi Netbeans olisi heti alleviivannut tuon kohdan ja ehdottanut sen poistamista.
Java ei kuulu omaan osaamiseeni, mutta kokeilepas ottaa tuo String sana pois while-loopin sisällä olevasta lopeta = lukija.nextLine(); lausekkeen edestä (muuttuja ja sen tietotyyppi on jo määritelty ennen kyseistä silmukkaa).
EDIT: Macro ehti ensin...
Otin String:in siitä pois, silloin siirtyi virheilmoitus while riville.
Siihen tuli korjaus ehdotus joka teki ensimmäiselle riville.
String lopeta = null;
Kiitos
Mitäpä jos lukisit, suomentaisit ja ymmärtäisit myös sen virheilmoituksen? Ei ole kovin mutkikas – on suorastaan hyvin selvä. Et voi loputtomiin elää sen varassa, että kehitysympäristö osaa joitain yksinkertaisia mokiasi korjata ehkä tuurilla oikein.
Lisäksi kannattaisi miettiä uudelleen tuota silmukkaa, nimittäin !=-vertailu ei toimi tuossa järkevästi.
Lukeminen ja suomentaminen onnistuu jollain tavalla, mutta ymmärtämisessä on paljon ongelmia.
:)
stt-73 kirjoitti:
Lukeminen ja suomentaminen onnistuu jollain tavalla, mutta ymmärtämisessä on paljon ongelmia. :)
Harrasta sitä pari vuotta. Tulet huomaamaan, että törmäät useasti tiettyihin virheisiin, ja opit tajuamaan viestin sisällön lukematta. Kyllä se ymmärtäminenkin alkaa sujua, kun vain yrität. Ja muista kysyä neuvoa, mikäli et jotain ymmärrä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.