Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Java: do-while silmukka

mrkebab [03.04.2004 17:46:05]

#

Alla on koodi missä valitaan halutaanko muuttaa jouleja kaloreiksi tai toisinpäin. Ongelma on se kun poistutaan do-while silmukasta painamalla 0:aa niin tulostuu vielä että:
antamasi (kalori/joule) määrä on 0. Onko kenelläkään tietoa pääsisin silmukasta pois ilman että tulostuisi tuo viimeinen ilmoitus. Silmukasta poistuminen täytyy tapahtua painamalla 0:aa.

  double kalori,joule,kaloreina,jouleina;
  char merkki;

System.out.println("Jos haluat muuttaa kaloreita jouleksi niin paina k");

System.out.print("Mutta jos haluat muuttaa jouleja kaloreiksi niin paina j\n:");

merkki = Oma.lueChar();

  if (merkki == 'k')
  do
  {
  System.out.println("Anna kalorimäärä joka muutetaan jouleiksi");

kalori = Oma.lueDouble();
jouleina = (kalori*4.184);
System.out.println("Antamasi kalorimäärä on jouleina: "+jouleina+"");
  }while (kalori !=0);



  else if (merkki == 'j')
  do
  {
  System.out.println("Anna joulemäärä joka muutetaan kaloreiksi");
  joule = Oma.lueDouble();
  kaloreina = (joule*0.239);
  System.out.println("Antamasi joulemäärä on kaloreina: "+kaloreina+"");
  }while (joule !=0);
  else
  {
  System.out.println("Virheellinen syöte.");
  }

}
}

Olga [03.04.2004 17:53:28]

#

Muuta do-while silmukka while-silmukaksi. Silloin vertailu tehdään ennen silmukan lauseiden suoritusta.

mrkebab [03.04.2004 18:18:19]

#

Aivan totta, mutta unohdin kertoa että ohjelman pitäisi mahdollistaa useiden joule/kaloriarvojen muuttamisen kaloreiksi/jouleiksi ennen kuin ohjelma lopettaa toimintansa. Eli onko mahdollista muuttaa edellistä koodia "helposti" niin että viimeinen tulostus jäisi tulostumatta?.

Olga [03.04.2004 18:29:39]

#

Voithan tehdä if-lauseen, tyyliin if(käyttäjänsyöte!=0) tulosta joulemäärä.

mrkebab [03.04.2004 19:53:40]

#

Ok. Kiitos irksome.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta