私はポストフィックス電卓を書きました:
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