2013-11-15 5 views
-1

Я новичок в программировании и буду признателен за помощь. Малейшая часть проницательности была бы высоко оценена. У меня проблема со следующим кодом. Программа эмулирует калькулятор, но в настоящее время основное внимание уделяется операторам if и else if. Вопрос заключается в том, что независимо от того, что выбирает пользователь, программа всегда будет добавить два числа, т.е. «number1» и «number2» в кодеЕсли заявление не работает

import java.util.*; 
public class Input 
{ 
    private Scanner input; 

    public Input() 
    { 
     input = new Scanner(System.in); 

    } 

    public void calculation() 
    { 
     double number1, number2, answer; 
     String A, B, C, D, E; 
     String option; 
     A = "A"; B = "B"; C = "C"; D = "D"; E = "E"; //initialising the strings 

     System.out.println("add - option A \t (if your option is A, insert 'A')"); 
     System.out.println("multiply - option B"); 
     System.out.println("subtract - option C"); 
     System.out.println("divide - option D"); 
     System.out.println("power - option E (1st number - 'X' & 2nd number - 'n' following X^n)"); 
     System.out.println("Remember Java is case sensitive, therefore, inserting 'a' as 'A' won't work"); 
     System.out.println(); 
     System.out.println("Insert your first number: "); 
     number1 = input.nextDouble(); 
     System.out.println("Insert your second number: "); 
     number2 = input.nextDouble(); 
     System.out.println("Choosing option: "); 
     option = input.next(); 

     if(A == A) 
     { 
      answer = number1 + number2; 
      System.out.println("Your answer is: " + answer); 
     } 

     else if(B == B) 
     { 
      answer = number1 * number2; 
      System.out.println("Your answer is: " + answer); 

     }else if(C == C) 
     { 
      answer = number1 - number2; 
      System.out.println("Your answer is: " + answer); 

     }else if(D == D) 
     { 
      answer = number1/number2; 
      System.out.println("Your answer is: " + answer); 

     }else if(E == E) 
     { 
      answer = Math.pow(number1, number2); 
      System.out.println("Your answer is: " + answer); 

     }else 
     { 
      System.out.println("Choose a suitable option"); 

     }  
    } 
} 
+7

Любой объект всегда '==' для себя. – rgettman

+2

Вы имели в виду 'A ==" A "'? Это было бы неправильно. –

+0

Не сравнивайте строки с '==', вместо этого используйте 'string.equals (...)' –

ответ

7

Youre получает выбранный параметр из пользовательского ввода в option = input.next(); линии и чем вы не используете его в своих операторах if.

Вместо if(A == A) использование if(option.equals(A)) и т. Д. Для других случаев.

+1

Спасибо! Это сработало, я ценю помощь :) – evonzz

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