Avatar billede mlunde Nybegynder
12. oktober 2008 - 12:14 Der er 4 kommentarer og
1 løsning

else-problem.. burde være hurtigt klaret

Hej.
Jeg har stirret mig blind på hvorfor den sidder fejl ved else-funktionen. Det er sikkert noget parantes-værk. Nogle der kan svare på det?

Hilsen Michael

import javax.swing.JOptionPane;

public class AS61 {
   
    /**
    * author: Michael Lunde
    */
   
  public static void main (String args[]) {
   
    double fahrenheit, celcius;
   

      boolean waitingForInput = true;

   
      do {
          fahrenheit = Integer.parseInt(JOptionPane.showInputDialog(
            "Please enter a value of Fahrenheit:"));
            if (Integer.parseInt(JOptionPane.showInputDialog())); {
                fahrenheit = Integer.parseInt();
                waitingForInput = false;
            }
              else { 
                  fahrenheit = Integer.parseInt(JOptionPane.showInputDialog("Invalid value. Please re-enter!"));
                  continue;
              }
            }
          while (waitingForInput);

   
    celcius = ((fahrenheit-32)*5)/9;
   
    System.out.println("This value is " + celcius + " in degrees Celcius");
   
    System.exit(0);
  }
}
Avatar billede erikjacobsen Ekspert
12. oktober 2008 - 12:27 #1
Der er for mange semikoloner i linien:

            if (Integer.parseInt(JOptionPane.showInputDialog())); {
Avatar billede mlunde Nybegynder
12. oktober 2008 - 12:50 #2
Det er rettet... men nu siger den fejl ved både if og else.
Hvad skal så gøres?

import javax.swing.JOptionPane;

public class AS61 {
   
    /**
    * author: Michael Lunde
    */
   
  public static void main (String args[]) {
   
    double fahrenheit, celcius;
   

      boolean waitingForInput = true;

   
      do {
          fahrenheit = Integer.parseInt(JOptionPane.showInputDialog(
            "Please enter a value of Fahrenheit:"));
            if  { 
            (Integer.parseInt(JOptionPane.showInputDialog()));
                fahrenheit = Integer.parseInt();
                waitingForInput = false;
            }
              else { 
                  fahrenheit = Integer.parseInt(JOptionPane.showInputDialog("Invalid value. Please re-enter!"));
                  continue;
              }
            }
          while (waitingForInput);

   
    celcius = ((fahrenheit-32)*5)/9;
   
    System.out.println("This value is " + celcius + " in degrees Celcius");
   
    System.exit(0);
  }
}
Avatar billede erikjacobsen Ekspert
12. oktober 2008 - 12:53 #3
Det er jo fordi det slet ikke har noget med en if-sætning at gøre. Har du ikke noget Java-kode, du kan kigge på, og se hvordan det skal se ud?

Det eneste du skal gøre i den linie jeg skrev før, er at fjerne semikolonet.
Avatar billede ulrikm Nybegynder
12. oktober 2008 - 13:53 #4
Du skal fange NumberFormatException fra Integer.parseInt:

import javax.swing.JOptionPane;

public class AS61 {
   
    /**
    * author: Michael Lunde
    */
   
  public static void main (String args[]) {
   
    double fahrenheit = 0, celcius;
   

      boolean waitingForInput = true;

      String message = "Please enter a value of Fahrenheit:";
      do {
        try{
          fahrenheit = Integer.parseInt(JOptionPane.showInputDialog(message));
          waitingForInput = false;
        }
        catch(NumberFormatException e ){
          message = "Invalid value. Please re-enter!";
        }
      }
      while (waitingForInput);

   
    celcius = ((fahrenheit-32)*5)/9;
   
    System.out.println("This value is " + celcius + " in degrees Celcius");
   
    System.exit(0);
  }
}
Avatar billede mlunde Nybegynder
25. juli 2010 - 07:19 #5
Tråd slut
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester