ongelma

Minulla on ongelma...teen sovellusta joka laskee käyttäjän painoindeksin, mutta joku mättää ja en osaa ratkaista ongelmaa.Osaisiko joku neuvoa tyhmää? Tässä ois koodi...

public class Painoindeksi
{
public static void main (String []args)
{
System.out.println ("Anna paino: "); //Kysytään käyttäjän paino
paino= lueInt();

public static int lueInt() { //kokonaisluvun lukeminen
   int arvo=-1;
   boolean ok;
   do {
      try {
         arvo = Integer.parseInt(stdin.readLine());
         ok = true;
         } catch (Exception e) {
         System.out.println("Kelvoton kokonaisluku. Anna uusi!");
         ok = false;
      }
   }
   while (!ok);
   return arvo;
}
System.out.println ("Anna pituus metreinä: "); // kysytään pituus
pituus= lueDouble();

public static double lueDouble() { // desimaaliluvun lukeminen
   double arvo=-1;
   boolean ok;
   do {
      try {
         arvo = new Double(stdin.readLine()).doubleValue();
         ok = true;
         } catch (Exception e) {
         System.out.println("Kelvoton desimaaliluku. Anna uusi!");
         ok = false;
      }
   }
   while (!ok);
   return arvo;
   
   // suoritetaan painoindeksin lasku
    painoindeksi= paino /(pituus * pituus);
}
System.out.println ("Painoindeksisi on: " painoindeksi);
}
}
1211
Äänestä

Muut lukivat myös

Vastaukset 1

Vanhimmat

Alla on esimerkki toimivasta versiosta, (vaatii kuitenkin Java 1.5:n koska käyttää Scanner luokkaa). Koodissasi oli lueDouble ja lueInt metodit kirjoitettu main metodin sisään, jota ei saa tehdä. Lisäksi et ollut määritellyt muuttujien paino, pituus ja painoindeksi tyyppiä, (eli onko int, double, float, tms.). Samoin et ollut missään kohdassa koodia määritellyt ja alustanut oliota stdin.

--- KOODI ALKAA ---


import java.util.Scanner;
import java.util.InputMismatchException;


public class Painoindeksi {
   private static Scanner s = new Scanner(System.in);

   
   public static double lueDouble() {      
      double arvo = 0;

      while(true) {
         try {
            arvo = s.nextDouble();
            break;
         } catch(InputMismatchException e) {
            s.next();
            System.out.println("Kelvoton desimaaliluku. Anna uusi!");
         }
      }

      return arvo;
   }   

   
   public static int lueInt() {      
      int arvo = 0;

      while(true) {
         try {
            arvo = s.nextInt();
            break;
         } catch(InputMismatchException e) {
            s.next();
            System.out.println("Kelvoton kokonaisluku. Anna uusi!");
         }
      }

      return arvo;
   }   
   
   
   public static void main (String []args) {
      System.out.print("Anna paino: ");
      int paino = lueInt();
      
      System.out.print("Anna pituus metreinä: ");
      double pituus = lueDouble();

      double painoindeksi = paino/(pituus*pituus);
      System.out.println ("Painoindeksisi on: " painoindeksi);
   }
}


--- KOODI LOPPUU ---

Äänestä

Kommentoi aloitusta


avuton kirjoitti:

Minulla on ongelma...teen sovellusta joka laskee käyttäjän painoindeksin, mutta joku mättää ja en osaa ratkaista ongelmaa.Osaisiko joku neuvoa tyhmää? Tässä ois koodi...

public class Painoindeksi
{
public static void main (String []args)
{
System.out.println ("Anna paino: "); //Kysytään käyttäjän paino
paino= lueInt();

public static int lueInt() { //kokonaisluvun lukeminen
   int arvo=-1;
   boolean ok;
   do {
      try {
         arvo = Integer.parseInt(stdin.readLine());
         ok = true;
         } catch (Exception e) {
         System.out.println("Kelvoton kokonaisluku. Anna uusi!");
         ok = false;
      }
   }
   while (!ok);
   return arvo;
}
System.out.println ("Anna pituus metreinä: "); // kysytään pituus
pituus= lueDouble();

public static double lueDouble() { // desimaaliluvun lukeminen
   double arvo=-1;
   boolean ok;
   do {
      try {
         arvo = new Double(stdin.readLine()).doubleValue();
         ok = true;
         } catch (Exception e) {
         System.out.println("Kelvoton desimaaliluku. Anna uusi!");
         ok = false;
      }
   }
   while (!ok);
   return arvo;
   
   // suoritetaan painoindeksin lasku
    painoindeksi= paino /(pituus * pituus);
}
System.out.println ("Painoindeksisi on: " painoindeksi);
}
}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu