2012-11-06 64 views
0

我正在學習Java,並且一直致力於創建一個小型計算器。我正在寫一個能夠讓我輸入任意數字的數字,直到我按下等號,我希望計算器顯示總數。使用掃描儀的Java計算器,但沒有顯示在控制檯中

我認爲掃描儀存在問題,因爲在調試時我只能達到Scanner input = new Scanner (System.in):在調試器中,它說Source找不到。這非常奇怪,尤其是當我在同一個項目中使用兩臺掃描儀時,根本沒有任何問題。正如你所看到的,我曾經在這件作品中擁有2臺掃描儀,但我讀到這樣不應該起作用,所以我現在正在使用一臺。下面是代碼...

package Calculator; 

import java.util.Scanner; 

public class Calculator3 { 

    public static void main(String[] args) { 

     Scanner input = new Scanner (System.in); 
    // Scanner opin = new Scanner (System.in);  
     String operative = input.next();   
     double numb = input.nextDouble(); 
     int answer = 0; 
     int calc = 1; 

     System.out.print("#######################################" + "\n");    
     while (operative.equalsIgnoreCase("=")) 
      { 
      System.out.print("Interger " + calc + " :"); 
      System.out.print("Type your Operative :"); 
      if (operative.equals("+")) 
       answer += numb; 
      { 
       if (operative.equals("-")) 
        answer -= numb; 
        { 
         if (operative.equals("/")) 
          answer /= numb; 
          { 
           if (operative.equals("*")) 
            answer *= numb; 
           { 
           } 
          } 
        } 
      } 
     calc += 1; 
      } 
     System.out.print("#######################################" + "\n");  
     System.out.println("Your answer is: " + answer + "."); 
} 
} 
+0

您可能正在嘗試介入,因此它抱怨,因爲它無法找到'Scanner'或'System'的源代碼,而在調試時應該逐步進行。 –

+0

花點時間閱讀關於開關/案例陳述。它會幫助你收緊代碼。 – Marvo

回答

0

與您的代碼的問題是,operative不更新,並首次讀取之後可能不會=。正因爲如此,你的循環不會退出,並且打印語句不會被達到。遵循您的邏輯,您需要在循環中添加讀取語句。另外我建議使用switch,這會讓你更易讀,更易於維護。

另請注意,在調試過程中,您的調試器無法檢測到源的類將得到「源未找到」。可能您的JDK配置缺少源條目。如果您使用Eclipse,請參閱此answer以瞭解有關您需要檢查以修復JDK配置的詳細信息。