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++;
    }

 }
}