2015-02-10 2 views
-3

Только что начал изучать Java, и я пытаюсь сделать калькулятор с JPanes самым простым способом. Я могу заставить его сделать простое конкатенацию, но я не могу заставить его добавлять введенные числа вместе. Любая помощь приветствуется.Базовый калькулятор Java

import javax.swing.*; 

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

     java.lang.String num = ""; 
     java.lang.String num2 = ""; 
     java.lang.String num3 = ""; 
     java.lang.String num4 = ""; 
     java.lang.String num5 = ""; 

     num = JOptionPane.showInputDialog("First number: "); 
     num2 = JOptionPane.showInputDialog("Second number: "); 
     num3 = JOptionPane.showInputDialog("Third number: "); 
     num4 = JOptionPane.showInputDialog("Fourth number: "); 
     num5 = JOptionPane.showInputDialog("Fifth number: "); 

     java.lang.String sum = ""; 

     if (sum.equals("")); 
      JOptionPane.showInputDialog (num - num2 - num3 - num4 - num5); 

     System.out.println(sum); 

    } 
} 
+3

Что происходит, когда вы пытаетесь вычесть строку из строки? Кроме того, это утверждение if if (sum.equals ("")); 'ничего не делает, верно это или нет. – Compass

+0

См. Также этот [пример калькулятора] (http://stackoverflow.com/a/7441804/418556). Он использует 'ScriptEngine' для оценки выражения в текстовом поле. –

ответ

1

Вы не можете добавлять и вычитать строки, как если бы они были числами. Вам нужно разобрать их в числовой тип, например, целое число, двойной и т.д.

int num = Integer.parseInt(JOptionPane.showInputDialog("First number: ")); 
int num2 = Integer.parseInt(JOptionPane.showInputDialog("Second number: ")); 
int num3 = Integer.parseInt(JOptionPane.showInputDialog("Third number: ")); 
int num4 = Integer.parseInt(JOptionPane.showInputDialog("Fourth number: ")); 
int num5 = Integer.parseInt(JOptionPane.showInputDialog("Fifth number: ")); 

Integer.parseInt может бросить исключение NumberFormat если вы даете ему что-то не расценить как число, например, abc, пустую строку и т. д. Используйте это как отправную точку для любой проверки.

Пара отступлений

  • java.lang.String, все классы в java.lang являются неявно импортированы, вам не нужен пакет
  • вам не нужно объявлять все переменные в вершина метода, подобного некоторым языкам, делает это везде, где ограничивает их охват лучшим.
Смежные вопросы