2015-12-19 9 views
-2

Я пытаюсь создать простой калькулятор, но почему он не распечатывает результат?Почему этот простой калькулятор не работает?

package SimpleCalc; 

import java.util.Scanner; 

public class SimpleCalc { 

    public static void main(String[] args) { 
     //String metod = ""; 
     String minus, plus, multiplikation; 
     minus = ""; 
     plus = ""; 
     multiplikation = ""; 
     int resultat; 

     Scanner sc = new Scanner(System.in); 
     System.out.println("Vad vill du använda? minus, plus, multiplikation?"); 
     String svar1 = sc.nextLine(); 
     //svar1 += metod; 
     System.out.println("Vilket tal?"); 
     int nr1 = sc.nextInt(); 
     System.out.println("Vilket tal vill du" + svar1 + "med?"); 
     int nr2 = sc.nextInt(); 


     if (svar1==minus) { 
      resultat = nr1 - nr2; 
      System.out.println(nr1 + svar1 + nr2 + "blirasd: " + resultat); 
     } 

     else if (svar1==plus) { 
      resultat = nr1 + nr2; 
      System.out.println(nr1 + svar1 + nr2 + "blir: " + resultat); 

     } 
    } 
} 
+2

Существует несколько вопросов. 'plus' и' минус' и как пустые строки, так и для сравнения строк, вам нужно использовать '.equals()' – MrTux

ответ

0

Пара вопросов:

  1. Вы не инициализирован свой минус, плюс строка с соответствующими значениями, которые вы могли бы сравнить позже.
  2. Вы используете ==, который будет сравнивать ссылку String. Я бы предложил использовать метод equals на String.
  3. Вы используете int nr1 = sc.nextInt();, если вы нажмете enter там, тогда ваш следующий вход int nr2 = sc.nextInt(); будет пустым, который будет анализировать «return key», т. Е. Пустой результат. Вместо этого я предлагаю вам использовать int nr1 = Integer.parseInt(sc.nextLine());
+0

Спасибо вам за помощь, однако по какой-то причине он не распечатывает результат. Я сделал то, что вы мне сказали. Код теперь выглядит как отправленный код @cylon. –

+0

Можете ли вы вставить последний код вместе с выводом вашего кода? – SMA

+0

Я не могу заставить этот «код» работать, извиняюсь за то, что он настолько тупой. Вместо этого я сделал два pastebins: http://pastebin.com/uLQnEVC5 http://pastebin.com/WYG8UNkH –

1

Ваши рабочие строки пустые. Также используйте equals для сравнения строк.

package SimpleCalc; 

import java.util.Scanner; 

public class SimpleCalc { 

    public static void main(String[] args) { 
     //String metod = ""; 
     String minus, plus, multiplikation; 
     minus = "-"; 
     plus = "+"; 
     multiplikation = "*"; 
     int resultat; 

     Scanner sc = new Scanner(System.in); 
     System.out.println("Vad vill du använda? minus, plus, multiplikation?"); 
     String svar1 = sc.nextLine(); 
     //svar1 += metod; 
     System.out.println("Vilket tal?"); 
     int nr1 = sc.nextInt(); 
     System.out.println("Vilket tal vill du" + svar1 + "med?"); 
     int nr2 = sc.nextInt(); 


     if (svar1.equals(minus)) { 
      resultat = nr1 - nr2; 
      System.out.println(nr1 + svar1 + nr2 + "blirasd: " + resultat); 
     } 

     else if (svar1.equals(plus)) { 
      resultat = nr1 + nr2; 
      System.out.println(nr1 + svar1 + nr2 + "blir: " + resultat); 

     } 
    } 
} 
0

символ оператора положить в variabls как это:

minus = "-"; 
    plus = "+"; 
    multiplikation = "*"; 

Кроме того, сравнивая две строки в Java это не может быть сделано с помощью == оператора. Вы должны равняться методу. Например, используйте if (svar1.equals(minus)) вместо if (svar1==minus) для сравнения двух строк.

Смежные вопросы