获取用户输入后如何循环菜单

时间:2016-03-12 04:53:02

标签: java loops

我正在制作一个基本的计算器。

我希望它向用户询问左侧OPERAND,然后显示用户必须选择操作员的菜单。选择操作员后,它将要求正确的操作员。完成此操作后,必须循环MENU,直到用户输入“5”退出,然后它将显示答案。

如何在获得正确的操作后循环菜单?

我刚刚开始这个,这就是我到目前为止所做的。

  import java.util.Scanner;

 public class program05 {


 public static void main(String [] args)
 {
Scanner sc = new Scanner(System.in);


System.out.print("Enter the left operand: ");
String expression = "";
double lOperand = sc.nextDouble();
System.out.print("\n");


double resultsSoFar = lOperand;
expression += lOperand;
String user;
double rOperand;


do {System.out.println("\n" + "1 -> Multiplication" + "\n" + "2 ->    Division" + "\n" + "3 -> Addition" + "\n" + "4 -> Subtraction" + "\n" + "5 -> Exit" + "\n");
System.out.print("Choose an operator above: ");
user = sc.next();

System.out.print("Enter right operand: ");
rOperand = sc.nextDouble();

if (user.equals("1"))
{
    resultsSoFar *= rOperand;
}
else if (user.equals("5"))
{
    System.out.println("The answer is "+ resultsSoFar);
    System.exit(1);
}

}

 while (!user.equals("5"));



}
}

3 个答案:

答案 0 :(得分:0)

然后将右操作数放入do-while循环中。

答案 1 :(得分:0)

嗯,在这种情况下,我sugesst你使用switch-case,甚至在do-while循环中使用if-else子句。 例如:

  switch(user){
     case "1":
             resultsSofar *= rOperand;
            break;
    case "2":
            break;
    case "3":
            break;
    case "4":
            break;
     case "5": //Exit and print the answer
            System.out.println("The answer is "+ resultsSofar);
            System.exit(1);
 }

希望这有帮助。

答案 2 :(得分:0)

例如:

     if (user.equalsIgnoreCase("1")) {
        resultsSofar *= rOperand;
    } else if (user.equalsIgnoreCase("2")) {
        //your code here
    } else if (user.equalsIgnoreCase("3")) {
        //your code here}
    } //more else if here
    else if (user.equalsIgnoreCase("5")) {
        System.out.println("The answer is "+ resutlsSofar);
        System.exit(1);
    }

由于你使用double作为操作数,当rOperand = 0时,结果将是无穷大。