2016-11-13 6 views
0

Я пытаюсь создать калькулятор для своего школьного проекта, но по какой-то причине, когда я пытаюсь скомпилировать, он говорит, что у меня есть проблема, и я понятия не имею, как это исправить. Я получаю сообщение об ошибке «Несколько маркеров на этой линии - Локальная переменная InputA не может быть инициализируется - Локальная переменная InputB не может быть инициализирован» в этой части:Базовый калькулятор Справка Java

 atimesb = (inputA * inputB); 
    adividedbyb = (inputA/inputB); 
    aplusb = (inputA + inputB); 
    aminusb = (inputA - inputB); 

неправильно.

import java.util.Scanner; 
public class Calculator { 

    public static void main(String[] args) { 

     int inputA; 
     int inputB; 
     int atimesb; 
     int adividedbyb; 
     int aplusb; 
     int aminusb; 
     atimesb = (inputA * inputB); 
     adividedbyb = (inputA/inputB); 
     aplusb = (inputA + inputB); 
     aminusb = (inputA - inputB); 

     String operation; 

     Scanner in = new Scanner(System.in); 

     System.out.println("Enter the first number"); 
     inputA = in.nextInt(); 

     System.out.println("Enter the operation"); 
     operation = in.next(); 

     System.out.println("Enter the second number"); 
     inputB = in.nextInt(); 



     if (operation.equals ("+")) 
     { 
      System.out.println(inputA + " + " + inputB + "=" + aplusb); 
     } 
     if (operation.equals ("-")) 
     { 
      System.out.println(inputA + " - " + inputB + "=" + aminusb); 
     } 
     if (operation.equals ("/")) 
     { 
      System.out.println(inputA + "/" + inputB + "=" + adividedbyb); 
     } 
     if (operation.equals ("*")) 
     { 
      System.out.println(inputA + " * " + inputB + "=" + atimesb); 
     } 
     if (operation.equals ("add")) 
     { 
      System.out.println(inputA + " * " + inputB + "=" + aplusb); 
     } 
     if (operation.equals ("subtract")) 
     { 
      System.out.println(inputA + " - " + inputB + "=" + aminusb); 
     } 
     if (operation.equals ("divide")) 
     { 
      System.out.println(inputA + "/" + inputB + "=" + adividedbyb); 
     } 
     if (operation.equals ("multiply")) 
     { 
      System.out.println(inputA + " * " + inputB + "=" + atimesb); 
     } 


} 
} 

Я был бы очень признателен, если бы кто-то мог мне помочь.

+0

Пожалуйста, включите полную ошибку, что вы получаете, как это будет помогать другим, чтобы помочь вам. См. [Как задать хороший вопрос?] (Http://stackoverflow.com/help/how-to-ask) – CmdrSharp

+0

Пожалуйста, добавьте более подробную информацию об ошибке, с которой вы столкнулись. Скопируйте и вставьте здесь трассировку ошибок. – maheeka

+0

Когда вы делите числа, будьте осторожны, помните, что деление двух целых чисел (в отличие от их умножения, добавление или вычитание), в результате чего вы получите нецелые числа (потенциально), поэтому вы должны сохранить ваш результат как float. –

ответ

2

Перед использованием необходимо прочитать значения. Как это:

 System.out.println("Enter the first number"); 
    inputA = in.nextInt(); 

    System.out.println("Enter the operation"); 
    operation = in.next(); 

    System.out.println("Enter the second number"); 
    inputB = in.nextInt(); 

    atimesb = (inputA * inputB); 
    adividedbyb = (inputA/inputB); 
    aplusb = (inputA + inputB); 
    aminusb = (inputA - inputB); 
+0

Спасибо, Биджей !!! Сейчас он работает – Blake

+1

Добро пожаловать. Надеюсь, теперь вы понимаете, почему он не работает. –