我不能让我的计算器工作

时间:2017-03-13 09:39:11

标签: java string user-input calculator

我想输入一个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;
    }
}
}

2 个答案:

答案 0 :(得分:1)

尝试使用input.next();代替input.nextLine();因为input.nextLine();使此扫描程序超过当前行并返回跳过的输入。因此,如果您的输入为20,+和24,则您的方法calc将获得20,24,null。

答案 1 :(得分:1)

input.next()而不是input.nextLine()用于字符串。试一试