我写了一个后修复计算器:
import java.util.Scanner;
public class req1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Double result = 0D;
String input ="";
int count =1;
while (count ==1) {
Scanner scan = new Scanner(System.in);
System.out.print("Welcome to your Postfix Calculator\n====================\n");
System.out.println("Enter your postfix expression, OR to exit type stop:");
input = scan.nextLine();
if (input.toLowerCase().equals("stop"))
{
System.out.println("Received stop command...");
System.exit(0);
}//end of if statement
else{
try
{
String[] inputArray = input.split(" ");
if (inputArray.length == 3)
{
Double number1 = Double.parseDouble(inputArray[0]);
Double number2 = Double.parseDouble(inputArray[1]);
String operator = inputArray[2];
switch (operator)
{
case "+":
result = number1 + number2;
break;
case "-":
result = number1 - number2;
break;
case "/":
result = number1 / number2;
break;
case "*":
result = number1 * number2;
break;
default:
System.out.println("Received unsupported operator: " + operator);
break;
}//end of switch
}else{
System.out.println("invalid expression");
}}
catch (NumberFormatException e)
{
System.err.println("Error:\n" + e.getMessage());
}
}
System.out.println("Result: " + result);
}
}
}
我并不是说这段代码不起作用,因为它确实起作用,但它只有在用户输入后缀表达式时才起作用:
7 8 +
如果用户这样输入:
7 + 8
计算器没有出现错误(Invalid expression
),我不知道我哪里出错了,或者我的代码中是否遗漏了一些东西。此外,当结果出现时,它只会给出我需要让它工作的答案,以便它给出表达式,然后给出答案
例如
7 8 +
或
7 + 8
你的结果是:7 + 8 = 15