-2

我创建了一个包含 3 个不同人的“检查帐户信息”的数组,如果来自用户的输入与客户的“帐号”之一匹配,我需要能够在我的代码的其他部分中使用客户的其余数据在我的阵列中。

例如,如果用户输入 12345678,我的代码将需要搜索数组,将该输入与“Jon's”帐户匹配,然后将 Jon 的信息用于代码中的其他内容。我基本上是在写 ATM 软件。

我的问题在于将帐号与用户的输入相匹配。帐号是“cac”数组每个部分的最后一个元素。

谁能告诉我我做错了什么?

CheckingAccountCustomer[] cac = new CheckingAccountCustomer[3]; // array of checking account customers, names, pins, balances, account numbers
    cac[0] = new CheckingAccountCustomer("Joe", 1234, 5000, 11111111);
    cac[1] = new CheckingAccountCustomer("Bob", 1111, 9000, 24606069);
    cac[2] = new CheckingAccountCustomer("Jon", 2222, 40000, 12345678);



    // prompt user for account number
    System.out.print("Please insert Debit Card or enter account number (8 digits):\n");
    sc.nextLine();
    int accountNumber = sc.nextInt();

    for (int i = 0; i < cac; i++)
    {
        if (accountNumber == cac[i][3])

            // DO STUFF WITH OTHER DATA
    }
4

5 回答 5

1

您没有正确地遍历数组。您应该使用以下 for 循环:

for (int i = 0; i < cac.length; i++) {

}

此外,您还有另一个有趣的问题。 accountNumber == cac[i][3]无效,因为cac它只是一个一维数组。如果我们删除额外的维度访问权限,您将剩下accountNumber == cac[i].

但我们还有另一个有趣的问题。为什么会有int平等CheckingAccountCustomer?那永远不会是真的。

您要使用的是对象帐号上的某种访问器。

所以,总的来说,你的 for 循环应该是这样的:

for (int i = 0; i < cac.length; i++) {
    if(accountNumber == cac[i].getAccountNumber()) {
        // logic.
    }
}
于 2013-05-05T20:30:40.277 回答
1

首先,您的 for 语句应为:

for (int i = 0; i < cac.length; i++)

第二:引用cac[i][3]也可能是错误的,这取决于CheckingAccountCustomer类的定义。

于 2013-05-05T20:27:08.357 回答
1

我认为应该i < cac.length没有cac,因为cac是一个数组。

无论如何,请使用Mapwhere 键是所需的数字,它会更快。

于 2013-05-05T20:27:33.527 回答
0

您应该为循环使用“foreach”语法:

for :CheckingAccountCustomer c : cac) {
    if (c.getAccountNumber() == accountNumber)

}

请注意,我假设您有 accountNumber 的访问器方法。

于 2013-05-05T20:31:10.727 回答
0

您需要遍历数组。for 循环中的条件语句是检查 anint是否大于 an CheckingAccountCustomer[],而不是检查数组的长度。

条件if语句还将 a 与将评估的 a 进行比较intCheckingAccountCustomer您需要从CheckingAccountCustomer.

for (int i = 0; i < cac.length; i++)
{
    if (accountNumber == cac[i][3].getAccountNumber())

        // DO STUFF WITH OTHER DATA
}
于 2013-05-05T20:27:14.983 回答