用Java做一个计算器。例如:输入3 + 2(一次输入,中间有空格),输出3+2=5。除数不能为零。当输入内容不符合自然数时例如a + 3不符合计算器,系统提示重新输入,用户按照要求输入后,可以得到正确的结果,包括:除数为0时的情况,JDK1.7情况下输出代码
时间: 2024-03-24 10:35:41 浏览: 8
以下是使用Java编写的计算器程序,满足您的要求:
```
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入算式:");
String input = scanner.nextLine();
String[] array = input.split(" ");
if (array.length != 3) {
System.out.println("输入格式错误,请重新输入!");
return;
}
double num1, num2, result;
try {
num1 = Double.parseDouble(array[0]);
num2 = Double.parseDouble(array[2]);
} catch (NumberFormatException e) {
System.out.println("输入格式错误,请重新输入!");
return;
}
switch (array[1]) {
case "+":
result = num1 + num2;
break;
case "-":
result = num1 - num2;
break;
case "*":
result = num1 * num2;
break;
case "/":
if (num2 == 0) {
System.out.println("除数不能为0,请重新输入!");
return;
}
result = num1 / num2;
break;
default:
System.out.println("输入格式错误,请重新输入!");
return;
}
System.out.println(input + "=" + result);
}
}
```
程序使用Scanner类实现用户输入,首先判断用户输入的格式是否正确(是否包含三个元素且第一个和第三个元素是数字),如果不正确则提示用户重新输入。接着使用try-catch语句将输入的数字转换成double类型,如果转换失败则说明输入格式错误,同样提示用户重新输入。然后根据运算符计算出结果,如果除数为0则提示用户重新输入。最后输出计算结果。
注意,该程序只支持加减乘除四种运算符,如果需要支持更多运算符需要在switch语句中添加相应的逻辑。此外,程序中使用了JDK1.7及以上版本支持的try-with-resources语句来自动关闭Scanner类,如果使用JDK1.6及以下版本需要手动关闭Scanner类。