Miksi jää ikuiseen looppiin?

ei tajua, ei

do {
try {
System.out.println("Anna luku");
luku = nappaimisto.nextDouble();
}
catch (InputMismatchException poikkeus){
   meniLapi = false;
}
}
while (meniLapi == false);

Lopputulos: jos antaa nextDoublen sijasta vaikka kirjaimen, niin komentorivi vain vilisee "Anna luku", eikä anna syöttää uutta lukua. Missä vika? Miksi ohjelma ei pysähdy ottamaan vastaan uutta arvoa muuttujalle luku?

4

820

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • löytyi jo

      vaikkakin jos joku voisi selittää, miksi väliin on pakko tunkea nappaimisto.nextLine(), jotta looppi katkeaa...

      • hemmoit

        Enterin painallus jäänyt lukematta...


      • Selitysss

        Yritä lukea virrasta seuraavan numeron (nextDouble). Mutta jos virrassa ei ole numeroa seuraavaksi vaan kirjaimia, tulee poikkeutus. Poikkeutuksessa asetat meniLapi arvon epätodeksi joka aiheuttaa alkuun menemisen. Ikuinen silmukka johtuu siis siitä, että pyydät konetta antamaan aina vain numeroa, vaikka kone ei voi sellaista antaa koska virrassa on kirjaimia. Kun laita "nextLine()" lukee se rivin virrasta ja näin ollen poistaa ainakin rivillisen merkkejä virrasta, (joten sen jälkeen ohjelma jatkuu normaalisti jos seuraavalla rivillä ei ole kirjain merkkejä)


      • kysyjä__
        Selitysss kirjoitti:

        Yritä lukea virrasta seuraavan numeron (nextDouble). Mutta jos virrassa ei ole numeroa seuraavaksi vaan kirjaimia, tulee poikkeutus. Poikkeutuksessa asetat meniLapi arvon epätodeksi joka aiheuttaa alkuun menemisen. Ikuinen silmukka johtuu siis siitä, että pyydät konetta antamaan aina vain numeroa, vaikka kone ei voi sellaista antaa koska virrassa on kirjaimia. Kun laita "nextLine()" lukee se rivin virrasta ja näin ollen poistaa ainakin rivillisen merkkejä virrasta, (joten sen jälkeen ohjelma jatkuu normaalisti jos seuraavalla rivillä ei ole kirjain merkkejä)

        Myöhässähän nämä kiitokset tulevat, mutta toivottavasti parempi myöhään kuin ei milloinkaan.

        Eli suuret kiitokset selityksestä. Nyt ymmärtää.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nainen näytät mummolta. :D

      Siks sua ei huoli kukaan.
      Ikävä
      172
      1954
    2. Kompostointitarkastaja tuli tarkastukselle!

      En ole ikinä kompostoinnut ja eilen kävi kompostointitarkastaja kylässä. Tosi hianoa byrokratiaa taas: "Laki edellyttää,
      76
      1412
    3. Varattais lähihotellista

      🥰 huone viikoksi. Oltais vaan ja tilattais huonepalvelusta herkkuja! Viikonloppukin käy jos et viikoksi ehdi ❤ Hyvää
      Ikävä
      182
      1374
    4. Nyt jäi velat perimättä

      Mikä idea se talo oli polttaa ja velalliset sisällä nyt jäi rahat saamatta
      Jämsänkoski
      10
      1107
    5. Ellen Jokikunnas muistelee Reino-koiraa - Ralph-poika koskettavalla tavalla esiin: "Kiitos, että..."

      RIP Reino. Lämmin osanotto suureen suruunne Ellen, Jari ja Ralph. Reino tuli tutuksi monelle suomalaiselle Unelmia Ita
      Tv-sarjat
      39
      1026
    6. Martinan aussikulta, missä?

      Mihin katosi Martina Aitolehden aussikulta kyselee Seiska!
      Kotimaiset julkkisjuorut
      209
      951
    7. Mitä tekisit jos kaivattusi olisi

      humalassa, kun tapaat hänet jossain seuraavalla kerralla?
      Ikävä
      94
      814
    8. Haluaisin sun kanssa yhteisen

      Elämän. Haluun sut.
      Ikävä
      38
      795
    9. Rakkauden kesä 2025

      Oletko valmis? 🥰
      Ikävä
      85
      795
    10. Meneekö eläinpuiston johto vaihtoon vaalien jälkeen?

      Ähtärissä kuhistaan ja kuiskitaan, että perussuomalaiset esittävät vaalien jälkeen, että eläinpuiston hallitus uusitaan
      Ähtäri
      49
      755
    Aihe