【发布时间】:2016-07-08 04:44:00
【问题描述】:
我正在为我的 java 类制作一个计算器,我们必须在其中输入一个左操作数,从 5 个选项的菜单中选择一个运算符(其中一个要退出),然后选择一个右操作数。它应该不断地从菜单中询问一个运算符和一个右操作数,直到用户选择 5(退出选项)并将“resultSoFar”保存为左操作数,这样它就可以继续下去。
最后,程序应该打印整个总和。因此,例如,最终结果可能看起来像“3 / 4 + 6 - 2 = 不管”(不用考虑数学)。不用担心它不按顺序做,现在还早在课堂上,老师不介意。
我不知道如何让它保存各个输入,以便在最后打印它们。代码如下:
import java.util.Scanner;
public class JavaAssignment5
{
public static void main(String[] args)
{
Scanner stdIn = new Scanner(System.in);
String operator = "";
double leftOp = 0.0;
double rightOp;
double resultSoFar = leftOp;
System.out.print("Please choose the left operand : ");
leftOp = stdIn.nextDouble();
System.out.println();
while (!(operator.equals("1") || operator.equals("2") || operator.equals("3") || operator.equals("4") || operator.equals("5")))
{
System.out.println("1 -> Multiplication");
System.out.println("2 -> Division");
System.out.println("3 -> Addition");
System.out.println("4 -> Subtraction");
System.out.println("5 -> Exit");
System.out.println();
while (!(operator.equals("1") || operator.equals("2") || operator.equals("3") || operator.equals("4") || operator.equals("5")))
{
System.out.println("Please choose a operator from the menu above : ");
String throwAway = stdIn.nextLine();
operator = stdIn.nextLine();
}
System.out.println("Please choose a right operand : ");
rightOp = stdIn.nextDouble();
if (operator.equals("1"))
{
resultSoFar = leftOp * rightOp;
}
if (operator.equals("2"))
{
resultSoFar = leftOp / rightOp;
}
if (operator.equals("3"))
{
resultSoFar = leftOp + rightOp;
}
if (operator.equals("4"))
{
resultSoFar = leftOp - rightOp;
}
}
System.out.println(resultSoFar);
}
}
【问题讨论】:
-
你可以使用
ArrayList吗? -
不,我们只涵盖了 while、do 和 for 循环。这就是为什么这是如此痛苦的原因。
-
@PaulBoddington 对不起,我没有标记你,新来的网站,我在上面回复了你的评论。
-
我还是收到了通知。如果您不标记任何人,我认为该网站通过自动通知前一个人来工作。那是一种痛苦。您应该按照答案中的建议使用像
ArrayList或StringBuilder这样的可变对象来真正做到这一点。如果不被允许,确实很痛苦。
标签: java input while-loop java.util.scanner calculator