2016-03-21 68 views
-1

嗨,大家好,我正嘗試使用我的帳號登錄到一個數組列表,我無法將用戶輸入與帳號相匹配。我的代碼如下:如何用賬號登錄-Just

登錄方法,主類

private void Login(){ 

    int UserInput; 
    Scanner option = new Scanner (System.in); 

    Account Account = new Account(); 
    ArrayList<Client> customers = bank.getCustomers(); //Gets Customer Info from Bank 
    System.out.println("What is your Account Number?"); 
    UserInput = option.nextInt(); 



     if(UserInput==Account.getAccountNumber()){ 
      Menu(); 
      int choice = UserInput(); 
      performAction(choice); 
     //system.out.println(i+1 + ")" + customers.get(i).BasicInfo()); 
     } 
     else { 
      System.out.println("Invalid Account Number"); 
      } 




    } 

的ArrayList - 銀行類

public class Bank { 

    ArrayList<Client> customers = new ArrayList<Client>(); //Adds customer details in this 

     void addCustomer(Client customer) { 
     // TODO Auto-generated method stub 
     customers.add(customer);//Adds customer from Menu to ArrayList 
    } 

     Client getCustomer(int account) { 
     // TODO Auto-generated method stub 
     return customers.get(account); //Returns Customer detail from ArrayList 
    } 

     ArrayList <Client> getCustomers(){ 
      return customers; //Returns customers 
     } 

} 

嗨,大家好,我想要做的就是讓主類中的用戶輸入能夠匹配來自'GetMethod'的AccountNumber,我相信它存儲在'Bank'類的araylist中。如果它匹配帳號,則其他方法在if語句中起作用。現在,當我輸入AccountNumber時,它會轉到else語句並顯示「Invalid AccountNumber」。如果這沒有意義,我很抱歉。

+0

帳戶帳戶=新帳戶();不要使用類名來標識對象。 – TheMirrox

+0

或者只是使用適當的java命名標準.. –

回答

1

從你的代碼,我認爲你是保存在其他地方的用戶帳號。

您從Account類獲得的帳號是可分配的下一個帳號。當您初始化Account類時,在Account構造函數內,它將增加帳號。該號碼從Account.getAccountNumber()返回。

這不可能是現有用戶的帳號。

解決方案:您沒有在這裏發佈您的客戶類。但是你必須在你的客戶類中有一個account_number變量。你可以爲賬號設置一個getter。銀行裏面有你的客戶名單。您將需要通過每個客戶迭代並配合銀行類內部的customers.Your循環的帳號輸入帳號看起來是這樣的:

for(int i=0;i<customers.size();i++){ 
    if(inputAccountNumber == customers.get(i).getAccountNumber()) 
    { 
     return true; 
    } 
    } 

這不是一個可擴展的解決方案。您可以爲客戶設置一個散列表,將客戶編號作爲關鍵字和值作爲該客戶的客戶類實例。

希望這可以解決您的問題。

+1

幫助很多,謝謝你! – John

相關問題