所以我试图在java中创建一个简单的计算器,但不知道如何获取输入操作。该程序要求两个数字,然后要求操作员。当我运行它直到我进入操作类型时,一切正常。编译器只是跳过它,甚至不让我输入任何内容。有线索吗?
Scanner keyboard = new Scanner(System.in);
double x;
double y;
double sum =0;
double minus =0;
double times =0;
double divide =0;
double nCr =0;
String Op;
System.out.print("X: ");
x = keyboard.nextDouble();
System.out.print("Y: ");
y = keyboard.nextDouble();
System.out.print("Op: ");
Op = keyboard.nextLine();
答案 0 :(得分:2)
尝试:
System.out.print("X: ");
x = Double.parseDouble(keyboard.nextLine());
System.out.print("Y: ");
y = Double.parseDouble(keyboard.nextLine());
System.out.print("Op: ");
op = keyboard.nextLine();
这会将您输入的数字解析为Double
并阅读回车。
如果您想要错误控制(如果用户输入字符串而不是数字):
Boolean check = true;
do
{
try
{
//The code to read numbers
}
catch(InputMismatchException e)
{
System.err.println("Please enter a number!");
check = false;
}
}
while(check == false)
答案 1 :(得分:1)
而不是
Op = keyboard.nextLine();
尝试使用
Op = keyboard.next();
看起来像nextLine();使用nextInt(),nextDouble()等方法调用时,方法会出现问题。
观察:如果单独调用nextLine(),则不会发生这种情况。
答案 2 :(得分:0)
基本上nextDouble
无法识别回车。在每个nextLine
之后使用nextDouble
。