Я написал постфиксный калькулятор:
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
), я не знаю, где она, я ошибаюсь или я что-то упускаю в своем коде. Кроме того, когда появляется результат, он дает только ответ, который мне нужен, чтобы заставить его работать, чтобы он выдавал выражение, а затем ответ
e.g.
7 8 +
или
7 + 8
ваш результат: 7 + 8 = 15