【问题标题】:i cant get my calculator to work我不能让我的计算器工作
【发布时间】:2017-03-13 09:39:10
【问题描述】:

我想输入一个 int 来获取第一个数字,然后使用一个字符串来获取运算符,另一个 int 来获取第二个数字。用户应该输入像 10+20 这样的东西。 但是一旦我输入“+”然后我得到一个错误为什么?

因为如果我手动将值添加到 sum.calc() 中,它会起作用;我自己喜欢 sum.calc(12, "+", 24);然后它会工作得 36

PART 1:
import java.util.Scanner;
public static void main(String[] args) {
    math sum = new math();
    Scanner input = new Scanner(System.in);
    double a = input.nextDouble();
    String b = input.nextLine();
    double c = input.nextDouble();
    sum.calc(a, b, c);
    input.close();
}


PART 2:
public class math {
public void calc(double a, String b, double c){
    double t;
    switch(b){
    case "+":
        t = a + c;
        System.out.println(a+" + "+c+" = "+t);
        break;
    case "-":
        t = a - c;
        System.out.println(a+" - "+c+" = "+t);
        break;
    case "*":
        t = a * c;
        System.out.println(a+" * "+c+" = "+t);
        break;
    case "/":
        t = a / c;
        System.out.println(a+" / "+c+" = "+t);
        break;
    }
}
}

【问题讨论】:

  • 欢迎来到 Stack Overflow!请拿起tour,环顾四周,并通读help center,尤其是How do I ask a good question?What topics can I ask about here?。 - 请add您收到的完整错误消息。
  • 您遇到的错误是什么?
  • 17 + 在 java.util.Scanner.throwFor(Scanner.java:864) 在 java.util.Scanner.next(Scanner.java:1485) 的线程“main”中出现异常 java.util.InputMismatchException ) 在 java.util.Scanner.nextDouble(Scanner.java:2413) 在 Testing.TestInfo.main(TestInfo.java:14)
  • 它成功了:D YAY! thanx 我是 java 新手,但thanx 现在我学到了一些新东西!你哪里有很大的帮助“谢谢!”

标签: java string user-input calculator


【解决方案1】:

尝试使用input.next(); 而不是input.nextLine(); 因为input.nextLine(); 将此扫描器前进到当前行并返回被跳过的输入。因此,如果您的输入是 20、+ 和 24,您的方法 calc 将得到 20,24,null。

【讨论】:

  • 它成功了:D YAY! thanx 我是 java 新手,但thanx 现在我学到了一些新东西!你哪里有很大的帮助“谢谢!
  • 如果您对答案满意,请点击所选答案的答案点下方的勾选,将其标记为已回答
【解决方案2】:

input.next() 代替 input.nextLine() 用于字符串。试试看

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-12
    • 2014-04-05
    • 1970-01-01
    相关资源
    最近更新 更多