Java初学者(循环)-自动售货机
我试图创建一个无限循环,不断读取自动售货机的新命令,只有在特定条件下才会停止-当输入为Java初学者(循环)-自动售货机,java,if-statement,command-line,while-loop,infinite-loop,Java,If Statement,Command Line,While Loop,Infinite Loop,我试图创建一个无限循环,不断读取自动售货机的新命令,只有在特定条件下才会停止-当输入为“return”,它会打印字符串“return$XX to customer”中的当前余额。(否则,它会在当前余额中不断增加/减少现金) 首先,我似乎无法将if和else部分集成在一起,因为当我编写'penny'时,两个字符串命令(“return~to customer”&“balance=“)都会出现。 第二个问题是,我想要的无限命令循环在我的终端中变成了无限数量的流,我似乎不知道为什么 若要修复损坏的“如果
“return”
,它会打印字符串“return$XX to customer”
中的当前余额。(否则,它会在当前余额中不断增加/减少现金)
首先,我似乎无法将if和else部分集成在一起,因为当我编写'penny'
时,两个字符串命令(“return~to customer”&“balance=“
)都会出现。
第二个问题是,我想要的无限命令循环在我的终端中变成了无限数量的流,我似乎不知道为什么 若要修复损坏的“如果”,请再添加一个其他选项:
import java.util.Scanner;
public class cat{
public static void main(String args[]){
System.out.print("Enter a command = ");
double balance = 0;
String a;
//scanner input
Scanner in = new Scanner(System.in);
String command = in.nextLine();
while (in.hasNext()){
if (command.equals("penny")){
balance = balance + 0.01;
System.out.println("balance = " + balance);
}
if (command.equals("nickel")){
balance = balance + 0.05;
System.out.println("balance = " + balance);
}
else {
System.out.println("return" + balance + "to customer");
break;
}
balance++;
}
}
}
使用java7,您可以使用交换机:
else if (command.equals("nickel")){
不知道这是否是您正在搜索的操作,但如果您发送
break
命令:
switch(command) {
case "nickel":
....
break;
case "penny":
.....
break;
default:
.....;
}
请在发布代码之前缩进代码。现在,这很难理解。什么是无限的数字?数字正在迅速增加到成千上万。问题中公布的解决方案的问题基本上与命令未更新的问题有关。这在这个答案中是固定的。我已经摆脱了balance++,它完全按照我的预期工作!!非常感谢你的帮助,我真的很感激。
import java.util.Scanner;
public class cat {
public static void main(String args[]) {
System.out.print("Enter a command = ");
double balance = 0;
String a;
// scanner input
Scanner in = new Scanner(System.in);
while (in.hasNext()) {
String command = in.nextLine();
if (command.equals("penny")) {
balance = balance + 0.01;
System.out.println("balance = " + balance);
} else if (command.equals("nickel")) {
balance = balance + 0.05;
System.out.println("balance = " + balance);
} else if (command.equals("break")) {
break;
} else {
System.out.println("return " + balance + " to customer");
}
balance++;
}
}
}