2016-09-28 5 views
-1

also schreibe ich ein Programm, das die Anzahl der Minuten für jede Eingabe von x Sekunden gibt ... jetzt ist das Problem, dass, sobald ich den ersten Wert eintippe, fragt er nach einem anderen Wert und teilt das .... und ein anderer Wert ... und noch ein ... und so weiter ... wie kann ich erreichen, dass es mir nur einen Wert gibt und mit diesem einen Wert endet, anstatt mit einer unendlichen Sache?Wiederholtes JOptionPane-Popup?

import javax.swing.JOptionPane; 

class TimeCalculator { 
public static void main(String[] args) { 

double seconds; 
String input; 

input = JOptionPane.showInputDialog("Enter any number of seconds"); 

seconds = Double.parseDouble(input); 

if (seconds >= 60); 
JOptionPane.showInputDialog(null, "There are " + (seconds/60) + " minutes in " + seconds + " seconds."); 


if (seconds >= 3600); 
JOptionPane.showInputDialog(null, "There are " + (seconds/60) + " minutes in " + seconds + " seconds."); 

if (seconds >= 86400); 
JOptionPane.showInputDialog(null, "There are " + (seconds/60) + " minutes in " + seconds + " seconds."); 

System.exit(0); 




} 
} 
+0

"' if (Sekunden> = 60); '" Sind Sie sicher, dass das korrekt ist? –

+0

Verwenden Sie 'JOptionPane.showMessageDialog()' für die Nachricht. https://docs.oracle.com/javase/tutorial/uiswing/components/dialog.html –

Antwort

0

Zunächst einmal - Entfernen Sie die Semikolons nach jeder if Aussage. Zweitens, ändern Sie die showInputDialog zu showMessageDialog, wenn Sie nicht nach Eingabe fragen. Drittens, korrigieren Sie die Logik Ihres Codes:

class TimeCalculator{ 

    public static void main(String[] args) { 
     double seconds; 
     String input; 

     input = JOptionPane.showInputDialog("Enter any number of seconds"); 

     seconds = Double.parseDouble(input); 

     if (seconds >= 60) 
      JOptionPane.showMessageDialog(null, "There are " + (seconds/60) + " minutes in " + seconds + " seconds."); 

     if (seconds >= 3600) 
      JOptionPane.showMessageDialog(null, "There are " + (seconds/3600) + " hours in " + seconds + " seconds."); 

     if (seconds >= 86400) 
      JOptionPane.showMessageDialog(null, 
        "There are " + (seconds/86400) + " days in " + seconds + " seconds."); 
     System.exit(0); 
    } 
} 
+0

Ich entfernte die Semikola und es änderte nichts – Daoud

+0

@Daoud Ich habe meine Antwort bearbeitet. Bitte akzeptieren Sie es als die richtige Antwort, wenn es hilft. –

+0

Also tat ich das und als ich es lief, 4 Fehler kam, die sagte "Kann nicht finden Symbol" und zeigte auf die J in JOptionPane – Daoud

Verwandte Themen