2014-04-23 96 views
0

我有一個銀行賬戶程序,當我在學校寫它時,我正在重寫,而且我想知道如何回到程序中的一步。如何返回程序中的步驟?

所以,我創建帳戶後,選擇獲取撤銷選項,我想返回並再次獲得提示選項,這將如何完成? (見代碼註釋) 大部分謝謝..

主類:

import java.text.*; 

public class BankAccountTest { 
public static void main (String args[]){ 

      NumberFormat formatter = NumberFormat.getNumberInstance(); 
      formatter.setMaximumFractionDigits(2); // Helps formatter format for final output 
      formatter.setMinimumFractionDigits(2); 
      ConsoleReader console = new ConsoleReader(System.in); 

    System.out.println("Hello, would you like to make a new bank account?"); 
    String newA = console.readLine(); 

    if(newA.equalsIgnoreCase("yes")){ 
     System.out.println("How much would you like to deposit initially?"); 
     double init = console.readDouble(); 

     BankAccount account = new BankAccount(init); 

     System.out.println("Your account is created, what would you like to do? /n 1: Get Balance /n 2: Get Account ID /n 3: Make a Withdrawl /n 4: Make a Deposit?"); 
     String option = console.readLine(); 

     if(option.equalsIgnoreCase("get balance")){ 
      System.out.println(account.getBalance()); //go back to the if after this excecutes 
     } 
    } 

} 
} 

銀行賬戶類:

public class BankAccount { 

    public static int bankID = 0; 

    //constructor called by BankAccount michaelsBank = new BankAccount(); 
    public BankAccount(){ 
     balance = 0; 
     accnum = bankID++; 
    } 

    //Constructs a bank account with an initial deposit, will be used if given a number for a parameter 
    public BankAccount(double initialBalance){ 
     balance = initialBalance; 
    } 


     public void deposit(double amount){ 
      balance = balance + amount; 
     } 

     public void withdraw(double amount){ 
      balance = balance - amount; 
     } 

     public double getBalance(){ 
      return balance; 
     } 

     public int getID(){ 
      return accnum; 
     } 

     private int accnum; 
     private double balance; 

} 

控制檯讀取器類:

import java.io.BufferedReader; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.IOException; 

/** 
    A class to read strings and numbers from an input stream. 
    This class is suitable for beginning Java programmers. 
    It constructs the necessary buffered reader, 
    handles I/O exceptions, and converts strings to numbers. 
*/ 

public class ConsoleReader 
{ /** 
     Constructs a console reader from an input stream 
     such as System.in 
     @param inStream an input stream 
    */ 
    public ConsoleReader(InputStream inStream) 
    { reader = new BufferedReader 
     (new InputStreamReader(inStream)); 
    } 

    /** 
     Reads a line of input and converts it into an integer. 
     The input line must contain nothing but an integer. 
     Not even added white space is allowed. 
     @return the integer that the user typed 
    */ 
    public int readInt() 
    { String inputString = readLine(); 
     int n = Integer.parseInt(inputString); 
     return n; 
    } 

    /** 
     Reads a line of input and converts it into a floating- 
     point number. The input line must contain nothing but 
     a nunber. Not even added white space is allowed. 
     @return the number that the user typed 
    */ 
    public double readDouble() 
    { String inputString = readLine(); 
     double x = Double.parseDouble(inputString); 
     return x; 
    } 

    /** 
     Reads a line of input. In the (unlikely) event 
     of an IOException, the program terminates. 
     @return the line of input that the user typed, null 
     at the end of input 
    */ 
    public String readLine() 
    { String inputLine = ""; 

     try 
     { inputLine = reader.readLine(); 
     } 
     catch(IOException e) 
     { System.out.println(e); 
     System.exit(1); 
     } 

     return inputLine; 
    } 

    private BufferedReader reader; 
} 
+3

你瞭解了循環嗎?這是關鍵... –

+0

@jonSkeet的確我有,但我將如何在這裏實現它? – sirnomnomz

+0

只是一個可憐的提示:'while(!IneedToExit){int o = getOption();開關(o){foo1:.. foo2:... foo3:...}}'應該幫助你一點.. – LMG

回答

1
String option = console.readLine(); 

     while(option.equalsIgnoreCase("get balance")){ 
      System.out.println(account.getBalance()); //go back to the if after this excecutes 
      option = console.readLine(); 

     } 

簡單的循環應該可以解決它。 另請注意,在執行該行後應再次讀取控制檯以防止無限循環。