2013-11-15 166 views
-1

我是新手編程,並希望得到一些幫助。稍微有點洞察力將受到高度讚賞。 我有以下代碼的問題。該程序模擬計算器,但目前我主要關注的是if和else if語句。 的問題是,無論什麼用戶選擇,程序將始終在代碼如果聲明不起作用

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

特殊照顧加兩個數字,即「數字1」和「數字2」正從用戶輸入所選擇的選項option = input.next();線而不是你的if語句中使用它。

而不是if(A == A)在其他情況下使用if(option.equals(A))等等。

+1

謝謝!這工作,我感謝幫助:) – evonzz