用Java做一个计算器。只要计算一次。例如:输入3 + 2(一次输入,中间有空格),输出3+2=5。除数不能为零。当输入内容不符合自然数时例如a + 3不符合计算器,系统提示重新输入,用户按照要求输入后,可以得到正确的结果,包括:除数为0时的情况
时间: 2024-03-23 11:43:49 浏览: 40
好的,我可以帮您解决这个问题。以下是Java实现计算器的代码:
```java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 循环计算,直到输入quit
while (true) {
System.out.print("请输入要计算的表达式(如 3 + 2)或输入 quit 退出:");
String input = scanner.nextLine();
if (input.equalsIgnoreCase("quit")) {
break;
}
String[] tokens = input.split(" ");
if (tokens.length != 3) {
System.out.println("输入的表达式不符合要求,请重新输入!");
continue;
}
double left = 0;
try {
left = Double.parseDouble(tokens[0]);
} catch (NumberFormatException e) {
System.out.println("输入的表达式不符合要求,请重新输入!");
continue;
}
double right = 0;
try {
right = Double.parseDouble(tokens[2]);
} catch (NumberFormatException e) {
System.out.println("输入的表达式不符合要求,请重新输入!");
continue;
}
String operator = tokens[1];
double result = 0;
switch (operator) {
case "+":
result = left + right;
break;
case "-":
result = left - right;
break;
case "*":
result = left * right;
break;
case "/":
if (right == 0) {
System.out.println("除数不能为0,请重新输入!");
continue;
}
result = left / right;
break;
default:
System.out.println("输入的表达式不符合要求,请重新输入!");
continue;
}
System.out.println(input + " = " + result);
}
scanner.close();
}
}
```
程序会循环等待用户输入表达式,并将其拆分为左操作数、运算符和右操作数。然后根据运算符计算结果,并将其输出。如果输入的表达式不符合要求,则给出提示并重新等待输入。如果除数为0,则也会给出提示并重新等待输入。
阅读全文