0
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"。(否则它会不断在当前余额中添加/减去现金)。

首先,我似乎无法将 if 和 else 部分集成在一起,因为两个字符串命令 ( "return ~ to customer "& "balance =") 在我编写'penny'. 第二个问题是我预期的无限命令循环只是在我的终端中变成了无限数字流,我似乎无法弄清楚为什么。

4

2 回答 2

1

不知道这是否是您要搜索的内容,但是这个循环直到您发送break命令:

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

 }
}
于 2013-03-16T20:08:31.060 回答
0

要修复您损坏的“如果”,请添加另一个:

 else if (command.equals("nickel")){

使用 java7,您可以使用 switch:

switch(command) {
    case "nickel":
        ....
        break;
    case "penny":
        .....
        break;
    default:
       .....; 
}
于 2013-03-16T19:58:14.580 回答