gpt4 book ai didi

java - 如何在 while 循环中保存各个输入并在最后打印它们?

转载 作者:行者123 更新时间:2023-11-30 03:00:29 25 4
gpt4 key购买 nike

我正在为我的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);
}



}

最佳答案

如果您需要的只是显示最终方程(例如 3/4 + 6 - 2),那么您可以在单个 StringBuilder 中构建该字符串.

如果最后需要单独的值和运算符,那么两个 ArrayList 对象就足够了,一个用于值,一个用于运算符。列表适合收集未知长度的值,因为与数组不同,列表的大小可以增长。

如果您要实现运算符优先级,则需要构建表达式树,但听起来您还没有做到这一点。

关于java - 如何在 while 循环中保存各个输入并在最后打印它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36135026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com