我被困在創建一個帳戶的對象中,我不知道問題出在哪裏。我的輸出只顯示最近輸入的值。我想看看我創建的打印細節(特別是不同的ID),我不知道如何去做。通過for循環創建對象時遇到困難
請檢查我的代碼,因爲我認爲我的循環有一個bug,有點顯示不需要顯示的顯示消息。
BankSystem.java:
import java.io.*;
import java.util.Scanner;
public class BankSystem {
public static void main(String[] args) throws IOException {
Scanner in = new Scanner(System.in);
BankAccount account[] = new BankAccount[5];
BankClient client[] = new BankClient[5];
BankSystem myBankSystem = new BankSystem();
String MainMenu;
do {
System.out.println("");
System.out.println("------PLP BANK SYSTEM------");
System.out.println("Main Menu: ");
System.out.println("[A]ccount Management");
System.out.println("[C]lient Management");
System.out.println("[Q]uit");
System.out.println("");
System.out.print("Please select letter: ");
MainMenu = in.nextLine();
switch (MainMenu.toLowerCase()) {
case "a":
System.out.println("");
System.out.println("------PLP BANK SYSTEM------");
System.out.println("Account Management:");
System.out.println("[N]ew Account");
System.out.println("[A]Apply Interest to All Accounts");
System.out.println("[L]ist All Accounts");
System.out.println("[F]ind an Account");
System.out.println("[D]eposit to an Account");
System.out.println("[W]ithdraw from an Account");
System.out.println("[R]eturn to Main Menu");
System.out.println("");
System.out.print("Please select letter: ");
String AccountManagement = in.nextLine();
switch (AccountManagement.toLowerCase()) {
case "n": //NEW ACCOUNT
System.out.print("Please input your desired ID number: ");
int id = in.nextInt();
System.out.print("Please input your desired Balance: ");
double balance = in.nextDouble();
System.out.print("Please input your desired Interest Rate: ");
double interestRate = in.nextDouble();
// IS THE PROBLEM IS HERE ON MY LOOP?
for (int i=0; i<account.length; i++) {
account[i] = new BankAccount(id, balance, interestRate);
}
break;
case "a": //APPLY INTEREST TO ALL ACCOUNTS
System.out.println("For all accounts, compute and compound:");
System.out.println("[M]onthly");
System.out.println("[Q]uarterly");
System.out.println("[A]nnually");
System.out.println("[C]ancel");
break;
case "l": //LIST ID NUMBERS OF ALL ACCOUNTS
System.out.println("List of all Accounts: ");
account[1].printDetails(); // OR THE PROBLEM IS HERE?
account[2].printDetails();
break;
case "f": //FIND ACCOUNT
System.out.println("Enter ID number: ");
break;
case "d": //DEPOSIT
System.out.println("Enter ID number: ");
System.out.println("Enter Deposit amount: ");
break;
case "w": //WITHDRAW
System.out.println("Enter ID number: ");
System.out.println("Enter Withdraw amount: ");
break;
case "r": // RETURN
break;
}
case "c":
System.out.println("");
System.out.println("------PLP BANK SYSTEM------");
System.out.println("Client Management:");
System.out.println("[N]ew Client");
System.out.println("[L]List All Clients");
System.out.println("[F]ind a Client");
System.out.println("[R]eturn to Main Menu");
System.out.println("");
System.out.print("Please select letter: ");
String ClientManagement = in.nextLine();
switch (ClientManagement.toLowerCase()) {
case "n": //NEW CLIENT
System.out.println("Enter ID number: ");
System.out.println("Please input your Name: ");
System.out.println("Please input your account ID number: ");
break;
case "l": //LIST ALL CLIENT
break;
case "f": //FIND A CLIENT
System.out.println("Enter ID number: ");
break;
case "r":
break;
default:
System.out.println("Invalid entry, Please try again!");
break;
}
default:
System.out.println("Invalid entry, Please try again!");
}
} while (!MainMenu.equals("q"));
System.out.println("Thank you for using my program!");
}
}
BankAccount.java:
public class BankAccount {
private double balance;
private double interestRate;
private int id;
public BankAccount (int id, double initialDeposit, double initialIntRate){
//Constructor
this.id=id;
this.balance=initialDeposit;
this.interestRate=initialIntRate;
}
public double getBalance(){
return balance;
}
public double getInterestRate(){
return interestRate;
}
public int getIDNumber(){
return id;
}
public void printDetails() {
System.out.println("ID Number is: " +id);
System.out.println("Current balance is: "+balance);
System.out.println("Interest rate is: "+interestRate+"%");
}
public double computeMonthlyInterest(){
interestRate=balance*interestRate;
return interestRate;
}
public void applyMonthlyInterest(){
this.balance=balance+interestRate;
}
public void applyQuarterlyInterest(){
this.balance=balance+(interestRate*3);
}
public void applyAnnualInterest(){
this.balance=balance+(interestRate*12);
}
public void deposit(double amount){
this.balance += amount;
}
public boolean withdraw (double amount) {
if (amount>balance) {
System.out.println("Withdraw amount is more than balance, Please try again.");
return false;
}
else
{
this.balance -= amount;
return true;
}
}
}
請縮進您的代碼。目前幾乎不可能閱讀。並且請更加珍貴地描述你的問題(期望的行爲等等) – Leistungsabfall 2014-10-02 17:20:03
你的'switch'結構在'case'語句之間沒有'break',並且有一個'while'缺少一個主體(在第一個代碼中snippet) – msrd0 2014-10-02 17:23:30
縮小問題範圍。當然,大部分代碼與問題無關。正如其他人所說,請花時間格式化並縮進您的代碼。 – tnw 2014-10-02 17:24:48