2016-05-12 7 views
-2

Für mein Programm versuche ich, einen einfachen Rechner zu machen, der zwei Zahlen Addition, Subtraktion, Multiplikation und Division macht, aber ich treffe eine Straßensperre mit meiner if-Anweisung. Wie mache ich diese Anweisung mit meiner Auswahl-Zeichenfolge arbeiten, sondern auch mit meiner Addition, Subtraktion, Multiplikation und Division String? Ich verwende JavaWie kann ich diese If-Anweisung mit allem arbeiten lassen?

import javax.swing.JOptionPane; 

public class Calculator 
{ 

public static void main (String args []) 
{ 
    String MainMenu = " Calculator Options \n\n1. Addition\n2" + 
    " Subtraction\n3. Multiplication\n4. Division\n5. Exit"; 

    menu (MainMenu); 
} 

public static String menu (String info) 
{ 
    String choice = JOptionPane.showInputDialog (info); 
    return choice; 

} 


{ 
if (choice.equals ("1")) 
    Add(); 
    else 
     if (choice.equals ("2")) 
     Sub(); 
      else 
      if (choice.equals ("3")) 
      Mult(); 
       else 
       if (choice.equals ("4")) 
       Div(); 
} 


public static int Addition (String Add) 
{ 
    String add1 = JOptionPane.showInputDialog ("Number 1 is?"); 
    int numadd1 = Integer.parseInt (add1); 

    String add2 = JOptionPane.showInputDialog ("Number 2 is?"); 
    int numadd2 = Integer.parseInt (add2); 

    int addEquals = numadd1 + numadd2; 

    JOptionPane.showMessageDialog (null, "The Answer Is: " + addEquals); 

    return addEquals; 
} 

public static int Subtraction (String Sub) 
{ 
    String sub1 = JOptionPane.showInputDialog ("Number 1 is?"); 
    int numsub1 = Integer.parseInt (sub1); 

    String sub2 = JOptionPane.showInputDialog ("Number 2 is?"); 
    int numsub2 = Integer.parseInt (sub2); 

    int subEquals = numsub1 - numsub2; 

    JOptionPane.showMessageDialog (null, "The Answer Is: " + subEquals); 

    return subEquals; 
} 

public static int Multiplication (String Mult) 
{ 
    String mult1 = JOptionPane.showInputDialog ("Number 1 is?"); 
    int nummult1 = Integer.parseInt (mult1); 

    String mult2 = JOptionPane.showInputDialog ("Number 2 is?"); 
    int nummult2 = Integer.parseInt (mult2); 

    int multEquals = nummult1 * nummult2; 

    JOptionPane.showMessageDialog (null, "The Answer Is: " + multEquals); 

    return multEquals; 
} 

public static int Divistion (String Div) 
{ 
    String div1 = JOptionPane.showInputDialog ("Number 1 is?"); 
    int numdiv1 = Integer.parseInt (div1); 

    String div2 = JOptionPane.showInputDialog ("Number 2 is?"); 
    int numdiv2 = Integer.parseInt (div2); 

    int divEquals = numdiv1/numdiv2; 

    JOptionPane.showMessageDialog (null, "The Answer Is: " + divEquals); 

    return divEquals; 
} 
} 
+1

Verwenden Schaltergehäuse –

+4

Ihr zu machen, wenn das alles funktioniert, es Erleuchtung erhalten muss, mit allem eins werden! –

+1

... sagte der Dalai Lama in einer Pizzeria. – shmosel

Antwort

0

Zunächst einmal in Betracht ziehen, eine switch-Anweisung anstelle dieser geschachtelten ifs zu verwenden. Wenn Sie Ihre Operationsauswahl a, b, c, d vorgenommen haben, könnte der Standardfall eine Zahl annehmen und versuchen, sie zu parsen.

+0

Das einzige Problem ist, dass mein Lehrer macht uns verwenden, wenn Aussagen, so dass ich nicht wissen, wie es mit meinem Menü String und alle Addition Subtraktion Multiplikation und Division Strings – FB10

+1

Lehrer, die schlechte Programmierung lehren lehren Gewohnheiten in einem Versuch, ein Konzept zu lehren. Wenn der Lehrer dieses Konzept nicht in der realen Welt anwenden kann, muss der Lehrer es nicht lehren. Wenn man schlechte Programmiergewohnheiten lehrt, um ein Konzept zu lehren, werden schlechte Programmiergewohnheiten entwickelt, und das Konzept bleibt nicht bestehen. Ich hatte zu viele Professoren in der Schule. –

0

Es ist eine Weile her, seit ich Java geschrieben habe, aber ich denke, Sie haben ein paar Probleme mit dem Code wie er ist. Erstens, Ihre if-Anweisung befindet sich in einem anonymen Block. Zweitens rufen Sie das Methodenmenü auf, das einen Wert zurückgibt, aber Sie setzen diesen Wert auf nichts. D, du hast die "Division" falsch geschrieben. Schließlich wird der Code nicht fehlschlagen, aber Sie verwenden Großbuchstaben für den ersten Buchstaben der Methoden. Ich glaube, die normale Art, Java-Anwendungen zu schreiben, besteht darin, Klassen zu Großbuchstaben zu machen, aber Methoden sind normalerweise unter dem ersten Buchstaben, CamelCase für den Rest (Pakete sind in der Regel auch Unterfall/CamelCase). Jemand korrigiert mich bitte, wenn ich falsch liege.

Bearbeiten: PS. Ich habe vergessen, dass Sie die Methoden anscheinend falsch aufrufen (Sie können die Methode "Addition" nicht mit Add()) aufrufen und wie bei der Menümethode setzen Sie den Wert, der von der Methode zurückgegeben wird, nicht auf irgendetwas .

+0

in Ordnung, also machte ich einige der Änderungen, die Sie gesagt haben, um Beispiele für die Methoden zu machen, die ich in der unteren Hälfte und ich reppelte Division, aber die Hauptsache, ich frage mich, wie mache ich diese If-Anweisung arbeiten.Wenn ich kompiliere, erscheint ein Fehler, der besagt, dass ich kein Symbol finden kann - Variablenwahl, aber wenn ich die if-Anweisung mit der Info-Zeichenfolge einfüge, findet sie eine Auswahl, aber nicht Meine add sub mult oder div string Wie kann ich dieses Problem beheben? – FB10

+0

P. S. S. Eine if, else if-Anweisung ist eine Anweisung –

+0

Sie sehen meine Bearbeitung, Sie rufen sie mit Namen an, für die Sie sie nicht benannt haben. Außerdem stellen Sie die Parameter nicht so in den Aufruf ein, wie sie von den Methoden benötigt werden. –

2

Es gibt eine Menge Probleme mit Ihrem Code, so dass hier eine überarbeitete Version:

public static void main(String[] args) { 
    String mainMenu = " Calculator Options \n\n1. Addition\n2" + 
      " Subtraction\n3. Multiplication\n4. Division\n5. Exit"; 

    String choice = JOptionPane.showInputDialog(mainMenu); 

    int num1 = Integer.parseInt(JOptionPane.showInputDialog("Number 1 is?")); 
    int num2 = Integer.parseInt(JOptionPane.showInputDialog("Number 2 is?")); 

    int result; 
    if (choice.equals("1")) { 
     result = num1 + num2; 
    } else if (choice.equals("2")) { 
     result = num1 - num2; 
    } else if (choice.equals("3")) { 
     result = num1 * num2; 
    } else if (choice.equals("4")) { 
     result = num1/num2; 
    } else { 
     return; 
    } 

    JOptionPane.showMessageDialog(null, "The Answer Is: " + result); 
} 

Dieses etwas sauberer mit einem switch sein würde, aber ich habe if s pro Ihre Anforderung verwendet.

+0

Oh mein Gott danke dir so sehr, dass ich nicht bemerkt habe, dass es so einfach werden könnte, dass mein Partner und ich es viel zu weit durchdacht haben, aber was du betrachtest sagte wirklich macht Sinn – FB10

+0

Gut gemacht - viel bessere Umsetzung –

1

Ok hier ist das, was ich tat, um es zu beheben:

  1. Bewegen Sie den, wenn Block in das Hauptverfahren: wie es ist, kann es nicht kompilieren
  2. ändern Methode ruft Methodennamen übereinstimmen
  3. Remove method parmeter - sie werden nicht benötigt, da Sie die Werte aus dem JOptionPane erhalten
  4. Ändern Sie Main zu Return und Int.

Nizza App Sie dorthin gehen ~ Prost

import javax.swing.JOptionPane; 

public class Calculator { 

    public static void main (String args []) { 
     String MainMenu = " Calculator Options \n\n1. Addition\n2" + 
       " Subtraction\n3. Multiplication\n4. Division\n5. Exit"; 
     menu (MainMenu); 
    } 

    public static int menu (String info) { 
     String choice = JOptionPane.showInputDialog (info); 

     if (choice.equals ("1")) 
      return Addition(); 
     else if (choice.equals ("2")) 
      return Subtraction(); 
     else if (choice.equals ("3")) 
      return Multiplication(); 
     else if (choice.equals ("4")) 
      return Division(); 
     else 
      return 0; 
    } 

    public static int Addition() { 
     String add1 = JOptionPane.showInputDialog ("Number 1 is?"); 
     int numadd1 = Integer.parseInt (add1); 

     String add2 = JOptionPane.showInputDialog ("Number 2 is?"); 
     int numadd2 = Integer.parseInt (add2); 

     int addEquals = numadd1 + numadd2; 

     JOptionPane.showMessageDialog (null, "The Answer Is: " + addEquals); 

     return addEquals; 
    } 

    public static int Subtraction() 
    { 
     String sub1 = JOptionPane.showInputDialog ("Number 1 is?"); 
     int numsub1 = Integer.parseInt (sub1); 

     String sub2 = JOptionPane.showInputDialog ("Number 2 is?"); 
     int numsub2 = Integer.parseInt (sub2); 

     int subEquals = numsub1 - numsub2; 

     JOptionPane.showMessageDialog (null, "The Answer Is: " + subEquals); 

     return subEquals; 
    } 

    public static int Multiplication() 
    { 
     String mult1 = JOptionPane.showInputDialog ("Number 1 is?"); 
     int nummult1 = Integer.parseInt (mult1); 

     String mult2 = JOptionPane.showInputDialog ("Number 2 is?"); 
     int nummult2 = Integer.parseInt (mult2); 

     int multEquals = nummult1 * nummult2; 

     JOptionPane.showMessageDialog (null, "The Answer Is: " + multEquals); 

     return multEquals; 
    } 

    public static int Division() 
    { 
     String div1 = JOptionPane.showInputDialog ("Number 1 is?"); 
     int numdiv1 = Integer.parseInt (div1); 

     String div2 = JOptionPane.showInputDialog ("Number 2 is?"); 
     int numdiv2 = Integer.parseInt (div2); 

     int divEquals = numdiv1/numdiv2; 

     JOptionPane.showMessageDialog (null, "The Answer Is: " + divEquals); 

     return divEquals; 
    } 
}