2015-03-29 2 views
0

Как я могу вернуть ответ на вычисление, где два числа и используемый оператор хранятся в переменных (ввод от пользователя).Java - Получение ответа на вычисление с использованием переменных

Я создаю простой калькулятор и пытаюсь вывести ответ на «Номер» «Оператор» «Number2», который может быть что угодно, в зависимости от того, каких входов пользователей.

int Number; 
int Number2; 
int Operator; 
String OperatorString; 

do 
{ 
    System.out.println("Enter a number"); 
    Number = UserInputScanner.nextInt(); 

    System.out.println("1. + \n"); 
    System.out.println("2. - \n"); 
    System.out.println("3. * \n"); 
    System.out.println("4./\n"); 

    Operator = UserInputScanner.nextInt(); 

     switch (Operator) { 
     case 1: OperatorString = "+";   
       break; 
     case 2: OperatorString = "-"; 
       break; 
     case 3: OperatorString = "*"; 
       break; 
     case 4: OperatorString = "/"; 
       break; 
     default: OperatorString = "Invalid Operator"; 
       break; 
    } 
    System.out.println(OperatorString); 

    System.out.println("Enter another number"); 
    Number2 = UserInputScanner.nextInt();  

    Answer = "Number" + "OperatorString" + "Number2"; 
    System.out.println(Number + OperatorString + Number2 + "=" + Answer); 

Выход из этого при вводе этих чисел и возвращает оператор "5 + 5 = 5 + 5", и я пытаюсь вернуться "5 + 5 = 10".

+0

вы просто concatinating строки в ответе 'Ответ =«Номер»+«OperatorString»+«Number2»,' это не даст вам желаемый ответ – silentprogrammer

+0

отсюда мои вопрос – Jayyf9

ответ

0

Java не предоставляет встроенный способа оценки String выражения с операторами для получения значения результата, так что вам будет нужен еще один переключатель для вычисления Answer:

switch (Operator) { 
    case 1: Answer = Number + Number2; 
      break; 
    case 2: Answer = Number - Number2; 
      break; 
    case 3: Answer = Number * Number2; 
      break; 
    case 4: Answer = Number/Number2; 
      break; 
    default: Answer = 0; 
      break; 
} 

Структура переключателя идентичен с тем, который у вас есть перед чтением второго номера, поэтому вы можете комбинировать эти два, если вы переместите показание Number2 перед коммутатором.

0

Вычислить ответ в блоке реле самого

int Number; 
int Number2; 
int Operator; 
String OperatorString; 

do 
{ 
System.out.println("Enter a number"); 
Number = UserInputScanner.nextInt(); 

System.out.println("1. + \n"); 
System.out.println("2. - \n"); 
System.out.println("3. * \n"); 
System.out.println("4./\n"); 

Operator = UserInputScanner.nextInt(); 
System.out.println("Enter another number"); 
Number2 = UserInputScanner.nextInt(); 
    switch (Operator) { 
    case 1: OperatorString = "+"; 
      Answer = Number + Number2; 
      break; 
    case 2: OperatorString = "-"; 
      Answer = Number - Number2; 
      break; 
    case 3: OperatorString = "*"; 
      Answer = Number * Number2; 
      break; 
    case 4: OperatorString = "/"; 
      Answer = Number/Number2; 
      break; 
    default: OperatorString = "Invalid Operator"; 
      break; 
} 
System.out.println(OperatorString); 




System.out.println(Number + OperatorString + Number2 + "=" + Answer); 
Смежные вопросы