【问题标题】:How to restart a java program如何重新启动一个java程序
【发布时间】:2017-06-18 12:35:00
【问题描述】:

我对 java 很陌生,只是在玩一些基础知识。我做了某种计算器。 (可能有更简单的计算器,只是根据我的想法工作)

这是我的代码:

import java.util.Scanner;

public class App {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);


        double second;

        System.out.println("Please tell me a number");

        double first = input.nextDouble();
        input.nextLine(); // Consume newline left-over

        System.out.println("You chose the number " + first);

        System.out
                .println("Now please choose what you want to do with the number. ( divide, add, multiply or subtract )");
        String text = input.nextLine();

        switch (text) {
        case "divide":
            System.out.println("What do you want to divide your number " + first + " with?");
            second = input.nextDouble();
            double resultDivide = first / second;
            System.out.println(first + " / " + second + " = " + resultDivide);
            break;
        case "add":
            System.out.println("What do you want to add to your number " + first + "?");
            second = input.nextDouble();
            double resultAdd = first + second;
            System.out.println(first + " + " + second + " = " + resultAdd);
            break;
        case "multiply":
            System.out.println("What do you want to multiply your number " + first + " with?");
            second = input.nextDouble();
            double resultMultiply = first * second;
            System.out.println(first + " * " + second + " = " + resultMultiply);
            break;
        case "subtract":
            System.out.println("What do you want to subtract your number " + first + " with?");
            second = input.nextDouble();
            double resultSubtract = first - second;
            System.out.println(first + " - " + second + " = " + resultSubtract);
            break;
        default:
            System.out.println("Sorry, I did not quite understand that. Please try again.");

        }

    }

所以我的问题是:当它在 switch case 语句中达到默认值时,我可以让程序从开始重新启动吗?

提前致谢。

【问题讨论】:

标签: java switch-statement application-restart


【解决方案1】:

似乎您想要做的只是循环,直到用户指定了一个有效的操作。在这种情况下,您可以使用 while 循环,观察变量:

import java.util.Scanner;

public class App {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        double second;
        System.out.println("Please tell me a number");
        double first = input.nextDouble();
        input.nextLine(); // Consume newline left-over

        System.out.println("You chose the number " + first);

        System.out
                .println("Now please choose what you want to do with the number. ( divide, add, multiply or subtract )");
        String text = input.nextLine();

        boolean correctOperation = true;

        do {
            correctOperation = true;

            switch (text) {
                case "divide":
                    System.out.println("What do you want to divide your number " + first + " with?");
                    second = input.nextDouble();
                    double resultDivide = first / second;
                    System.out.println(first + " / " + second + " = " + resultDivide);
                    break;
                case "add":
                    System.out.println("What do you want to add to your number " + first + "?");
                    second = input.nextDouble();
                    double resultAdd = first + second;
                    System.out.println(first + " + " + second + " = " + resultAdd);
                    break;
                case "multiply":
                    System.out.println("What do you want to multiply your number " + first + " with?");
                    second = input.nextDouble();
                    double resultMultiply = first * second;
                    System.out.println(first + " * " + second + " = " + resultMultiply);
                    break;
                case "subtract":
                    System.out.println("What do you want to subtract your number " + first + " with?");
                    second = input.nextDouble();
                    double resultSubtract = first - second;
                    System.out.println(first + " - " + second + " = " + resultSubtract);
                    break;
                default:
                    System.out.println("Sorry, I did not quite understand that. Please try again.");
                    correctOperation = false;
                    text = input.nextLine();
            }
        } while(!correctOperation)
    }
}

【讨论】:

    【解决方案2】:

    while 循环是您所需要的。循环的输入条件将是default 情况。在循环中,您必须将之前使用的这段代码放入:

    System.out.println("Now please choose what you want to do with the number. ( divide, add, multiply or subtract )");
            String text = input.nextLine();
    

    所以它会继续请求输入,直到您没有收到 default 案例。

    【讨论】:

      【解决方案3】:

      我认为你需要一个while循环,例如:

      String text = input.readLine();
      while(text != null) {
         switch(...)
      } 
      

      还有,我想给你一些建议:

      • 你应该检查你输入的“text”字符串是否为null,如果“text”字符串为null,你会遇到NullPointerException。
      • 如果你会使用这么多case语句,你必须考虑设计模式,链接是Replacing if else statement with pattern

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多