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++;
}
}
}
自動販売機の新しいコマンドを読み続ける無限ループを作成しようとしています。これは、特定の条件下でのみ停止する可能性があります。入力が"return"
の場合、現在のバランスが文字列に出力されます"return $XX to customer"
。(それ以外の場合は、現在の残高に現金を加算/減算し続けます)。
"return ~ to customer "& "balance ="
まず、を書くと両方の文字列コマンド()が表示されるため、ifとelseの部分を統合できないようです'penny'
。2番目の問題は、意図した無限のコマンドループが端末内で無限の数のフローになり、その理由がわからないことです。