我想输入一个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;
}
}
}
答案 0 :(得分:1)
尝试使用input.next();
代替input.nextLine();
因为input.nextLine();
使此扫描程序超过当前行并返回跳过的输入。因此,如果您的输入为20,+和24,则您的方法calc
将获得20,24,null。
答案 1 :(得分:1)
input.next()而不是input.nextLine()用于字符串。试一试