2012-11-06 71 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配置的详细信息。