Java计算器使用扫描仪但没有输出显示在控制台中

时间:2012-11-06 23:46:56

标签: java debugging java.util.scanner calculator

我正在学习Java,并且一直致力于创建一个小计算器。我正在写一个允许我输入任意数字的数字,直到我按下等号,此时我希望计算器显示总数。

我认为扫描程序存在问题,因为在调试时我只能到Scanner input = new Scanner (System.in):在调试器中它说Source not found。这真的很奇怪,特别是因为我在同一个项目中使用两个扫描仪而没有任何问题。你可以告诉我以前在这件作品中有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 + ".");
}
}

1 个答案:

答案 0 :(得分:0)

您的代码存在的问题是operative未在第一次阅读后更新,可能不会=。因此,您的循环将不会退出,并且将无法访问print语句。遵循您的逻辑,您需要在循环中添加read语句。此外,我建议使用switch,这将使您更易读,更易于维护。

另请注意,在调试时,如果您的调试器无法检测到源,则会找到“Source not found”。可能您的JDK配置缺少源条目。如果您使用Eclipse,请参阅此answer以获取有关修复JDK配置所需检查内容的详细信息。