【问题标题】:whats wrong with my calculator code我的计算器代码有什么问题
【发布时间】:2014-09-14 18:08:08
【问题描述】:

包计算器; 导入 java.util.*;

公开课计算器{

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);
    System.out.println("Calculator");

    System.out.println("Enter a number");
    double firstNumber = in.nextDouble();

    System.out.println("Enter another number");
    double secondNumber = in.nextDouble();

    System.out.println("Enter the letter for 'm'ultiply 's'ubtract 'a'dd or 'd'ivide");

    String wantedProcess = in.nextLine();       

    String multiply = "m";

    String subtract = "s";

    String add = "a";

    String divide = "d";


    if(wantedProcess.equals(multiply))
    {
        double product = firstNumber * secondNumber;
        System.out.println("=" + product);
    }



}

} 所以这是我正在制作的计算器,但是在我输入两个数字后,我无法输入 m s a 或 d。我做错了什么?

【问题讨论】:

  • 比较两个字符串使用equals()方法而不是==
  • 你不能打字是什么意思?程序是否退出?在那种情况下,您是否可能在此处未发布的代码中某处有停止条件?我们可以看到更多的代码吗?
  • 我的意思是我点击了让我测试代码的按钮。我输入两个数字,然后它要求我输入其中一个字母,但是当我尝试时没有任何反应
  • 您的问题似乎正在发生变化。您是否有特定的问题,或者您只是在使用人来调试您的代码...

标签: java calculator


【解决方案1】:
if(wantedProcess.equals(multiply)) 

最后你错过了第二个大括号。现在看:如果您输入“m”作为乘法,然后将字符串“m”与字符串“乘法”进行比较,您如何期望它们相等?仅比较首字母,例如,使用 String.charAt() 方法。

更重要的是,我想你最好使用 Scanner 的 next() 方法,而不是 nextLine()。在此处查看他们的文档:http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine()

【讨论】:

    【解决方案2】:

    将此if(wantedProcess.equals(multiply) 更改为if(wantedProcess.equals(multiply))

    你错过了)

    编辑:然后 你需要重新创建一个新的 Scanner 对象

       Scanner inF = new Scanner(System.in);
       String wantedProcess = inF.nextLine();
    

    【讨论】:

    • 我又遇到了一个错误。我认为问题是 String WantedProcess = in.nextLine();因为我在测试代码时无法输入其中一个字母
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-15
    • 2011-12-03
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    相关资源
    最近更新 更多