Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将多个值(不同类型)存储在一个数组中并打印出来?_Java_Arrays_Object_If Statement_Java.util.scanner - Fatal编程技术网

Java 如何将多个值(不同类型)存储在一个数组中并打印出来?

Java 如何将多个值(不同类型)存储在一个数组中并打印出来?,java,arrays,object,if-statement,java.util.scanner,Java,Arrays,Object,If Statement,Java.util.scanner,我的程序要求用户创建一个银行帐户。目前,它只能创建一个帐户并打印出来。我想扩展我的程序,这样它可以通过反复选择菜单选项创建多个帐户,最后打印所有帐户详细信息 package bankapp_assignment; import java.util.Scanner; public class BankApp_Assignment { public static void main(String[] args) { BankAccount[] accounts = ne

我的程序要求用户创建一个银行帐户。目前,它只能创建一个帐户并打印出来。我想扩展我的程序,这样它可以通过反复选择菜单选项创建多个帐户,最后打印所有帐户详细信息

package bankapp_assignment;

import java.util.Scanner;

public class BankApp_Assignment {

    public static void main(String[] args) {
        BankAccount[] accounts = new BankAccount[10];

        Scanner sc = new Scanner(System.in);

        int userChoose;
        String name = null;
        int accNum = 0;
        double initiateAmount = 0;
        double newAmm = 0;

        double depOrWith = 0;
        System.out.println("WELCOME TO OUR BANK!\n\n"
                + "...................\n"
                + "...................\n\n"
                + "Choose your optiin:\n"
                + "1. Create new account\n"
                + "2. View all the accounts property\n"
                + "3. Quit\n\n");

        System.out.println("*************\n"
                + "************");
        while (true) {
            userChoose = sc.nextInt();
            sc.nextLine();
            if (userChoose == 1) {
                /*the user must be able to create multiple accounts, let's say 10 accounts for instance
                 To open another new account the user should choose the menu option "1" again and continue...
                 */
                System.out.println("Enter your full name:");
                name = sc.nextLine();

                System.out.println("Choose an account number:");

                accNum = sc.nextInt();

                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
                System.out.println("\n-----------\n"
                        + "------------");
            } else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

            } else if (userChoose == 3) {
                System.exit(0);

            }
        }

    }

}
银行帐户:

package bankapp_assignment;

public class BankAccount {
    public void createAcc(){

    }
}
在Naman的回答之后编辑:

    public static void main(String[] args) {
        BankAccount[] accounts = new BankAccount[10];

        Scanner sc = new Scanner(System.in);

        int userChoose;
        String name = null;
        int accNum = 0;
        double initiateAmount = 0;
        double newAmm = 0;

        double depOrWith = 0;
        System.out.println("WELCOME TO OUR BANK!\n\n"
                + "...................\n"
                + "...................\n\n"
                + "Choose your optiin:\n"
                + "1. Create new account\n"
                + "2. View all the accounts property\n"
                + "3. Quit\n\n");

        System.out.println("*************\n"
                + "************");
        while (true) {
            userChoose = sc.nextInt();
            sc.nextLine();
            if (userChoose == 1) {
                /*the user must be able to create multiple accounts, let's say 10 accounts for instance
                 To open another new account the user should choose the menu option "1" again and continue...
                 */
                System.out.println("Enter your full name:");
                name = sc.nextLine();

                System.out.println("Choose an account number:");

                accNum = sc.nextInt();

                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
                System.out.println("\n-----------\n"
                        + "------------");

accounts[numOfAcc]=bankAcc;
                numOfAcc++;

            } else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

   for(BankAccount bankAccount: accounts){

                  System.out.println("Your name: " + name);
                 System.out.println("Your account number: " + accNum);
                 System.out.println("Your current balance: " + initiateAmount);
                 System.out.println("\n-----------\n"
                 + "------------");  

                  }



            } else if (userChoose == 3) {
                System.exit(0);

            }
        }

    }
}1)创建对象类:例如

class BankAccount{
    private String userName;
    private String userSurname;
    private String birthDay;
    private int accountNumber;
    private int ibanNo;
    private int balance;
    public BankAccount(String userName, String userSurname, String birthDay, int accountNumber, int ibanNo, int balance) {
        super();
        this.userName = userName;
        this.userSurname = userSurname;
        this.birthDay = birthDay;
        this.accountNumber = accountNumber;
        this.ibanNo = ibanNo;
        this.balance = balance;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserSurname() {
        return userSurname;
    }
    public void setUserSurname(String userSurname) {
        this.userSurname = userSurname;
    }
    public String getBirthDay() {
        return birthDay;
    }
    public void setBirthDay(String birthDay) {
        this.birthDay = birthDay;
    }
    public int getAccountNumber() {
        return accountNumber;
    }
    public void setAccountNumber(int accountNumber) {
        this.accountNumber = accountNumber;
    }
    public int getIbanNo() {
        return ibanNo;
    }
    public void setIbanNo(int ibanNo) {
        this.ibanNo = ibanNo;
    }
    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }

}
2) 在主类中使用此对象创建全局列表

List<BankAccount> accounts = new ArrayList<BankAccount>();
4) 现在,您可以使用帐户列表添加/获取/删除帐户。

1)创建对象类:例如

class BankAccount{
    private String userName;
    private String userSurname;
    private String birthDay;
    private int accountNumber;
    private int ibanNo;
    private int balance;
    public BankAccount(String userName, String userSurname, String birthDay, int accountNumber, int ibanNo, int balance) {
        super();
        this.userName = userName;
        this.userSurname = userSurname;
        this.birthDay = birthDay;
        this.accountNumber = accountNumber;
        this.ibanNo = ibanNo;
        this.balance = balance;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUserSurname() {
        return userSurname;
    }
    public void setUserSurname(String userSurname) {
        this.userSurname = userSurname;
    }
    public String getBirthDay() {
        return birthDay;
    }
    public void setBirthDay(String birthDay) {
        this.birthDay = birthDay;
    }
    public int getAccountNumber() {
        return accountNumber;
    }
    public void setAccountNumber(int accountNumber) {
        this.accountNumber = accountNumber;
    }
    public int getIbanNo() {
        return ibanNo;
    }
    public void setIbanNo(int ibanNo) {
        this.ibanNo = ibanNo;
    }
    public int getBalance() {
        return balance;
    }
    public void setBalance(int balance) {
        this.balance = balance;
    }

}
2) 在主类中使用此对象创建全局列表

List<BankAccount> accounts = new ArrayList<BankAccount>();

4) 现在,您可以使用帐户列表添加/获取/删除帐户。

创建银行帐户详细信息的对象,只需添加到ArrayList即可 使用java.util包中的ArrayList数据类型 创建一个包含银行帐户详细信息的类,只需将其导入该类并编写以下代码

List <BankAccount> accounts = new <BankAccount> ArrayList();
BankAccount object = new BankAccount();
//Set field here like

System.out.println("Enter your full name:");
                name = sc.nextLine();

                System.out.println("Choose an account number:");

                accNum = sc.nextInt();

                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
在这种情况下,最好存储通用数据类型或对象, 还可以在if-then-else块上使用开关盒,它可读性强且方便

还可以使用enhaced for循环查看帐户

for(BankAccount account:accounts){
System.out.println("ALL DETAILS FROM OBJECT");
}

创建银行帐户详细信息的对象,只需添加到ArrayList即可 使用java.util包中的ArrayList数据类型 创建一个包含银行帐户详细信息的类,只需将其导入该类并编写以下代码

List <BankAccount> accounts = new <BankAccount> ArrayList();
BankAccount object = new BankAccount();
//Set field here like

System.out.println("Enter your full name:");
                name = sc.nextLine();

                System.out.println("Choose an account number:");

                accNum = sc.nextInt();

                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
在这种情况下,最好存储通用数据类型或对象, 还可以在if-then-else块上使用开关盒,它可读性强且方便

还可以使用enhaced for循环查看帐户

for(BankAccount account:accounts){
System.out.println("ALL DETAILS FROM OBJECT");
}

如果要继续使用数组,可以先初始化静态变量:

static int number = 0;
按如下方式更改块:

 if (userChoose == 1) {
    BankAccount ac = new BankAccount();
    //set account properties;
    accounts[number] = ac;
    number++;
 }
else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

   for(BankAccount bankAccount: accounts){

                  System.out.println("Your name: " + bankAccount.getName());
                 System.out.println("Your account number: " + bankAccount.getAccountNum());
                 System.out.println("Your current balance: " + bankAccount.getInitialAmount());
                 System.out.println("\n-----------\n"
                 + "------------");  

                  }
您可以按如下方式检索数组:

for(BankAccount bankAccount: accounts){
   //bankAccount.getProperty();
}
您的代码应该是

BankAccount bankAcc = null;
   if (userChoose == 1) {
       bankAcc = new BankAccount(); 
                /*the user must be able to create multiple accounts, let's say 10 accounts for instance
                 To open another new account the user should choose the menu option "1" again and continue...
                 */
                System.out.println("Enter your full name:");
                name = sc.nextLine();
                bankAcc.setName(name);//setter method of your bankAccount bean
                System.out.println("Choose an account number:");

                accNum = sc.nextInt();
                bankAcc.setAccountNum(accNum);
                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
                bankAcc.setInitialAmount(initialAmount);
                System.out.println("\n-----------\n"
                        + "------------");

accounts[numOfAcc]=bankAcc;
                numOfAcc++;

            }
如下所示:

 if (userChoose == 1) {
    BankAccount ac = new BankAccount();
    //set account properties;
    accounts[number] = ac;
    number++;
 }
else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

   for(BankAccount bankAccount: accounts){

                  System.out.println("Your name: " + bankAccount.getName());
                 System.out.println("Your account number: " + bankAccount.getAccountNum());
                 System.out.println("Your current balance: " + bankAccount.getInitialAmount());
                 System.out.println("\n-----------\n"
                 + "------------");  

                  }

如果要继续使用数组,可以先初始化静态变量:

static int number = 0;
按如下方式更改块:

 if (userChoose == 1) {
    BankAccount ac = new BankAccount();
    //set account properties;
    accounts[number] = ac;
    number++;
 }
else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

   for(BankAccount bankAccount: accounts){

                  System.out.println("Your name: " + bankAccount.getName());
                 System.out.println("Your account number: " + bankAccount.getAccountNum());
                 System.out.println("Your current balance: " + bankAccount.getInitialAmount());
                 System.out.println("\n-----------\n"
                 + "------------");  

                  }
您可以按如下方式检索数组:

for(BankAccount bankAccount: accounts){
   //bankAccount.getProperty();
}
您的代码应该是

BankAccount bankAcc = null;
   if (userChoose == 1) {
       bankAcc = new BankAccount(); 
                /*the user must be able to create multiple accounts, let's say 10 accounts for instance
                 To open another new account the user should choose the menu option "1" again and continue...
                 */
                System.out.println("Enter your full name:");
                name = sc.nextLine();
                bankAcc.setName(name);//setter method of your bankAccount bean
                System.out.println("Choose an account number:");

                accNum = sc.nextInt();
                bankAcc.setAccountNum(accNum);
                System.out.println("Enter an initiating amount:");

                initiateAmount = sc.nextDouble();
                bankAcc.setInitialAmount(initialAmount);
                System.out.println("\n-----------\n"
                        + "------------");

accounts[numOfAcc]=bankAcc;
                numOfAcc++;

            }
如下所示:

 if (userChoose == 1) {
    BankAccount ac = new BankAccount();
    //set account properties;
    accounts[number] = ac;
    number++;
 }
else if (userChoose == 2) {//view all the accounts property (including account number and initial balance)

   for(BankAccount bankAccount: accounts){

                  System.out.println("Your name: " + bankAccount.getName());
                 System.out.println("Your account number: " + bankAccount.getAccountNum());
                 System.out.println("Your current balance: " + bankAccount.getInitialAmount());
                 System.out.println("\n-----------\n"
                 + "------------");  

                  }

带有工作答案的完整代码

package tester;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class BankApp {

    static class BankAccount {
        private String name;
        private int accNum;
        private double initiateAmount;

        public BankAccount() {
            this.name = null;
            this.accNum = 0;
            this.initiateAmount = 0;
        }

        public void setAccNum(int accNum) {
            this.accNum = accNum;
        }

        public void setInitiateAmount(double initiateAmount) {
            this.initiateAmount = initiateAmount;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return name + "\t" + accNum + "\t" + initiateAmount;
        }
    }

    public static void main(String[] args) {
        List<BankAccount> bankAccounts = new ArrayList<BankAccount>();
        Scanner sc = new Scanner(System.in);
        while(true){
        System.out.println("WELCOME TO OUR BANK!\n\n"
                + "Choose your option:\n"
                + "1. Create new account\n"
                + "2. View all the accounts property\n"
                + "3. Quit\n");

            int option = sc.nextInt();
            sc.nextLine();
            switch(option){
                case 1:
                    BankAccount account = new BankAccount();
                    System.out.println("Enter your full name:");
                    account.setName(sc.nextLine());
                    System.out.println("Choose an account number:");
                    account.setAccNum(sc.nextInt());                    
                    System.out.println("Enter an initiating amount:");
                    account.setInitiateAmount(sc.nextDouble());
                    bankAccounts.add(account);
                    break;
                case 2:
                    System.out.println("Name\tAcc No\tAmount");
                    for (BankAccount bankAccount : bankAccounts) {
                        System.out.println(bankAccount);
                    }
                    System.out.println("\n\n");
                    break;
                case 3:
                    return;
            }
        }
    }
}

带有工作答案的完整代码

package tester;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class BankApp {

    static class BankAccount {
        private String name;
        private int accNum;
        private double initiateAmount;

        public BankAccount() {
            this.name = null;
            this.accNum = 0;
            this.initiateAmount = 0;
        }

        public void setAccNum(int accNum) {
            this.accNum = accNum;
        }

        public void setInitiateAmount(double initiateAmount) {
            this.initiateAmount = initiateAmount;
        }

        public void setName(String name) {
            this.name = name;
        }

        @Override
        public String toString() {
            return name + "\t" + accNum + "\t" + initiateAmount;
        }
    }

    public static void main(String[] args) {
        List<BankAccount> bankAccounts = new ArrayList<BankAccount>();
        Scanner sc = new Scanner(System.in);
        while(true){
        System.out.println("WELCOME TO OUR BANK!\n\n"
                + "Choose your option:\n"
                + "1. Create new account\n"
                + "2. View all the accounts property\n"
                + "3. Quit\n");

            int option = sc.nextInt();
            sc.nextLine();
            switch(option){
                case 1:
                    BankAccount account = new BankAccount();
                    System.out.println("Enter your full name:");
                    account.setName(sc.nextLine());
                    System.out.println("Choose an account number:");
                    account.setAccNum(sc.nextInt());                    
                    System.out.println("Enter an initiating amount:");
                    account.setInitiateAmount(sc.nextDouble());
                    bankAccounts.add(account);
                    break;
                case 2:
                    System.out.println("Name\tAcc No\tAmount");
                    for (BankAccount bankAccount : bankAccounts) {
                        System.out.println(bankAccount);
                    }
                    System.out.println("\n\n");
                    break;
                case 3:
                    return;
            }
        }
    }
}

嗨,Naman,我真的想继续我创建的阵列,你也是这么做的。但是如果我想打印accounts属性(通过选择选项2)。我认为静态整数=0;它不能全部打印出来(或者,可能是我错了?)。还有,如果我想打印出一个特定的帐户详细信息(通过引用用户的帐号),我想在将来修改我的程序,该怎么办。你给出的答案行吗?我编辑了我的答案。你可以像那样取回所有的银行账户。若你们想得到具体的账户,那个么你们可以使用equals方法来得到具体的账户。亲爱的Naman,很抱歉再次打断你们。我已经编辑了我的帖子,在那里我根据你的建议做了修改。但它不会将所有帐户属性保存在数组中。它只存储创建的最后一个帐户,并且将所有内容打印10次。我想我在某个地方有点误解,希望你不太难发现。你能运行这个代码吗?由于您没有设置bankacchi Naman的任何属性,我实际上想继续使用我创建的数组,这也是您所做的。但是如果我想打印accounts属性(通过选择选项2)。我认为静态整数=0;它不能全部打印出来(或者,可能是我错了?)。还有,如果我想打印出一个特定的帐户详细信息(通过引用用户的帐号),我想在将来修改我的程序,该怎么办。你给出的答案行吗?我编辑了我的答案。你可以像那样取回所有的银行账户。若你们想得到具体的账户,那个么你们可以使用equals方法来得到具体的账户。亲爱的Naman,很抱歉再次打断你们。我已经编辑了我的帖子,在那里我根据你的建议做了修改。但它不会将所有帐户属性保存在数组中。它只存储创建的最后一个帐户,并且将所有内容打印10次。我想我在某个地方有点误解,希望你不太难发现。你能运行这个代码吗?由于您没有设置bankaccFaraj Farook的任何属性,所以我喜欢您解决它的方式,但我从未期望在类中有一个类。如果不在我的主类中创建一个静态类,它怎么可能不存在呢?将该类存储在一个名为
BankAccount.java
的seprate文件中。删除
static
关键字,并在该位置添加
public
,Faraj Farook,感谢它现在可以正常工作,正如我所期待的那样Faraj Farook,我喜欢你解决问题的方式,但我从未期望类中包含类。如果不在我的主类中创建一个静态类,它怎么可能不存在呢?将该类存储在一个名为
BankAccount.java
的seprate文件中。删除
static
关键字,然后在该位置添加
public
,Faraj Farook,谢谢它现在可以正常工作了,我期待的是Mucahit,如何打印所有帐户?Mucahit,如何打印所有帐户?