Java Can';当一个特定的字符串值与一个特定的条件匹配时,我不知道如何停止应用程序
这是我第一次在这个网站上发布一些主题,并且遇到了一个我无法克服的问题。下面的问题让我大吃一惊,如下所示: 当上述十进制数的总计算量达到特定目标量时,在输入字符串“就绪”后,打印:“祝贺您”,否则打印:“计算错误”。当用户输入一个名为“我退出!”的字符串时,应用程序将退出并打印:“退出者” 以下是我目前拥有的Java代码:Java Can';当一个特定的字符串值与一个特定的条件匹配时,我不知道如何停止应用程序,java,Java,这是我第一次在这个网站上发布一些主题,并且遇到了一个我无法克服的问题。下面的问题让我大吃一惊,如下所示: 当上述十进制数的总计算量达到特定目标量时,在输入字符串“就绪”后,打印:“祝贺您”,否则打印:“计算错误”。当用户输入一个名为“我退出!”的字符串时,应用程序将退出并打印:“退出者” 以下是我目前拥有的Java代码: public static void goal(double targetAmount) { Scanner sc = new Scanner(System.in);
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()改为code>(删除那些多余的空格。感谢您的回复。我尝试了您的解决方案,并在while循环中产生了一个额外的input.nextLine()语句。还将语句:“String input=scanner.next()”更改为“String input=scanner.nextLine())’。我已经运行了这个应用程序,并且做了我想做的事情。我不知道这样做是否方便/有效。但是谢谢!