2013-03-16 234 views
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"。 (否則會持續增加/減少現金餘額)。java初學者(環路) - 自動販賣機

首先,我似乎無法將if和else部分集成到一起,因爲當我編寫'penny'時,字符串命令("return ~ to customer "& "balance =")出現。 第二個問題是,我打算無限的命令循環變成了終端中的無限數字流,我似乎無法弄清楚原因。

+1

請在發佈之前縮進你的代碼。現在,它很難閱讀。 – 2013-03-16 19:45:23

+0

什麼是無限數字? – astidham2003 2013-03-16 19:55:26

+0

這些數字正在迅速增加到數千甚至更多。 – 2013-03-16 20:06:22

回答

0

要解決你的破「如果」添加另一種東西:

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

隨着java7你可以用開關:

switch(command) { 
    case "nickel": 
     .... 
     break; 
    case "penny": 
     ..... 
     break; 
    default: 
     .....; 
} 
1

Don'y知道這是否是你正在尋找做什麼,但是這個循環單元你發送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++; 
    } 

} 
} 
+0

問題中發佈的解決方案的問題基本上與命令未更新的問題有關。這是解決這個答案。 – 2013-03-16 20:28:20

+0

我已經擺脫了平衡++,它完美地工作,因爲我打算!非常感謝你幫助我真的很感激。 – 2013-03-16 21:12:13