Java Can';当一个特定的字符串值与一个特定的条件匹配时,我不知道如何停止应用程序

Java Can';当一个特定的字符串值与一个特定的条件匹配时,我不知道如何停止应用程序,java,Java,这是我第一次在这个网站上发布一些主题,并且遇到了一个我无法克服的问题。下面的问题让我大吃一惊,如下所示: 当上述十进制数的总计算量达到特定目标量时,在输入字符串“就绪”后,打印:“祝贺您”,否则打印:“计算错误”。当用户输入一个名为“我退出!”的字符串时,应用程序将退出并打印:“退出者” 以下是我目前拥有的Java代码: public static void goal(double targetAmount) { Scanner sc = new Scanner(System.in);

这是我第一次在这个网站上发布一些主题,并且遇到了一个我无法克服的问题。下面的问题让我大吃一惊,如下所示:

当上述十进制数的总计算量达到特定目标量时,在输入字符串“就绪”后,打印:“祝贺您”,否则打印:“计算错误”。当用户输入一个名为“我退出!”的字符串时,应用程序将退出并打印:“退出者”

以下是我目前拥有的Java代码:

public static void goal(double targetAmount) {
    Scanner sc = new Scanner(System.in);

    double total = 0;

    while (scanner.hasNextDouble()) {
        double input= sc.nextDouble();
        total += input;
    }


    String inputString = sc.next();     
}

我期待着看到你的回应。希望我的问题表述正确?

您可以使用
System.exit()
退出程序

案例“我退出!”:
System.out.println(“退出者”);
系统退出();

我认为问题在于使用
scanner.next()
读取的
输入,因为
scanner.next()
读取输入直到下一个空白字符。这意味着当您输入
I退出时,它将读取
I

打印变量
输入的输出显示问题:

public static void main(String[] args) {
    salarisdoel(100);
}

public static void salarisdoel(double targetAmount) {
    Scanner scanner= new Scanner(System.in);

    double total = 0;

    while (scanner.hasNextDouble()) {
        double inputMoney= scanner.nextDouble();
        total += inputMoney;
    }


    String input = scanner.next();
    System.out.println(input);//print to check what was read from the console
    switch (input) {
        case "I Quit!":
            System.out.println("Quitter");
            break;
        case "Ready":
            if (total>= targetAmount) {
                System.out.println("Congratulations");
            } else {
                System.out.println("Calculation Error");
            }
            break;
        default: 
            System.out.println("Something went wrong. Try again!");
            break;
    }     
}

如果您使用一个没有空格的字符串退出(例如,
“I_Quit!”
),它将起作用。

好的,您已经解释了您试图解决的问题(很好),并且显示了您为解决该问题而编写的代码(也很好),以及您希望看到的结果(同样,很好)。但是你忘了告诉我们你遇到了什么困难:也就是说,你的解决方案怎么没有达到预期?首先感谢你的回答。很抱歉,我没有告诉你我的期望和困难。我的困难在于,当我使用语句“input=scanner.nextLine()”时,它只接受switch语句的第一个条件,该条件之间有空格分隔(请参见:“我退出!”),而不是单个单词(文本)(请参见:“Ready”)。当我使用语句input=scanner.next()时,它会忽略switch语句的第一个条件。我已经用下划线替换了“我退出!”条件的空格(参见其他回复)。但这与条件不匹配。当您使用
nextLine()
读取输入时,
input
可能会包含一些前导和/或尾随空格,这将导致它与
开关的大小写不匹配。尝试
input=nextLine().trim()(删除那些多余的空格。感谢您的回复。我尝试了您的解决方案,并在while循环中产生了一个额外的input.nextLine()语句。还将语句:“String input=scanner.next()”更改为“String input=scanner.nextLine())’。我已经运行了这个应用程序,并且做了我想做的事情。我不知道这样做是否方便/有效。但是谢谢!