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

695

    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ä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Maksetaanko Vornaselle palkkaa 2 viikon sairaslomasta

      Eli torstain kännistä 2 viikon palkallinen sairasloma? Saako muut duunarit myös rännätä 2 viikkoa työnantajan laskuun?
      Perussuomalaiset
      220
      1883
    2. Miksi tunnet vetoa..

      Miksi tunnet vetoa juuri häntä kohtaan? Mikä sen saa aikaan?
      Ikävä
      67
      1699
    3. Mitä te palstan ihanat naiset

      Ajattelette hyvin viisaista miehistä, jotka ovat koko ajan jotenkin oudosti väärässä? Vaikka älykkyysosamääräsi olisi 21
      Sinkut
      68
      1485
    4. Tapaus Vornanen

      Se oli torstai-ilta ja kansanedustaja Vornanen oli juhlimassa seurueensa kanssa pitkän edustusviikon jälkeen. Baarissa o
      Maailman menoa
      105
      1179
    5. Nainen, kohtelin sua kuin paskaa

      Ja silti odotin että annat kaiken anteeksi. Yllätyin kun niin ei käynytkään. Olethan kaikin puolin alle mun tason ja sun
      Ikävä
      63
      1100
    6. Nainen, seuraan sun uutta elämää

      Hieman naurattaa tuo sun uusi rooli 🤭. Kun et sovi siihen mitenkään. Mutta pakkohan sulla jokin paikka olla missä hämme
      Ikävä
      53
      1065
    7. Olet kaikki mitä ikinä tahdonkaan

      Voi sinä ihana Jarno olet just se ihminen keneen menin täysin ihastumaan. Kuin salama kirkkaalta taivaalta meidän koht
      Suhteet
      19
      1056
    8. Voi hitto Rinsessa säikähdin

      Että olitkin silloin joku huijari. Huh, sano ettet ole.
      Ikävä
      4
      988
    9. Ilona Siekkinen

      Onko Ilona Siekkinen todellinen henkilö vai tekoälyllä luotu henkilö? Koostettu monesta eri kuvasta ja liitetty yhteen m
      Yhteiskunta
      1
      940
    10. AVARN Security ja julkisen toimeksiannon laiton henkilörekisteri

      Kyseessä ei ole VR:än ylläpitämä, vaan Avarnin laiton henkilörekisteri. https://www.is.fi/kotimaa/art-2000000482739.htm
      Turvallisuuspalvelut
      13
      871
    Aihe