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

827

    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. Tänään pyörit ajatuksissa enemmän, kun erehdyin lukemaan palstaa

      En saisi, silti toivon että sinä vielä palaat ja otetaan oikeasti selvää, hioituuko särmät ja sulaudummeko yhteen. Vuod
      Ikävä
      22
      5134
    2. Huomenta ihana

      Kauniskasvoinen ihanuus 😘 saan sut vielä
      Ikävä
      25
      4308
    3. Hei rakas...

      Miten on työpäivä sujunut? Rakastan sinua 💗
      Ikävä
      27
      2461
    4. Edelleen sitä on vaikea uskoa

      Että olisit oikeasti rakastunut muhun
      Ikävä
      34
      2234
    5. Toiveikas vai toivoton

      torstai? Ajatuksia?
      Ikävä
      37
      1998
    6. Vitsi mihin menit. Heti takasin.

      Mä näin sut tuu takasin! Oli kiire, niin en ehtiny sin perään!
      Ikävä
      15
      1908
    7. En ole koskaan kokenut

      Ennen mitään tällaista rakastumista. Tiedän että kaipaan sinua varmaan loppu elämän. Toivottavasti ei tarvitsisi vain ka
      Ikävä
      19
      1587
    8. Mukavaa päivää

      Mun rakkauden kohteelle ❤️ toivottavasti olet onnellinen
      Ikävä
      12
      1521
    9. Voi ei! Jari Sillanpää heitti keikan Helsingissä - Hämmästyttävä hetki lavalla...

      Ex-tangokuningas on parhaillaan konserttikiertueella. Hän esiintyi Savoy teatterissa äitienpäivänä. Sillanpää jakoi kons
      Suomalaiset julkkikset
      21
      1247
    10. Kerranki asiat oikein

      Ilkka ja muut pienpuolueeet...teitte hyvän työn kun valitsitte pätevän henkilön virkaan eikä kepulle passelia!! Jatkakaa
      Haapavesi
      10
      1164
    Aihe