我的Java数组搜索无法工作
我已经创建了一个由3个不同的人的“支票账户信息”组成的数组,如果用户的输入与数组中客户的“账户号”匹配,我需要能够在代码的其他部分使用客户的其余数据 例如,如果用户输入12345678,“我的代码”将需要搜索数组,将该输入与“Jon的”帐户匹配,然后使用Jon的信息处理代码中的其他内容。我基本上是在写ATM软件 我的问题在于将帐号与用户的输入相匹配。帐号是“cac”数组每个部分的最后一个元素 谁能告诉我我做错了什么我的Java数组搜索无法工作,java,arrays,Java,Arrays,我已经创建了一个由3个不同的人的“支票账户信息”组成的数组,如果用户的输入与数组中客户的“账户号”匹配,我需要能够在代码的其他部分使用客户的其余数据 例如,如果用户输入12345678,“我的代码”将需要搜索数组,将该输入与“Jon的”帐户匹配,然后使用Jon的信息处理代码中的其他内容。我基本上是在写ATM软件 我的问题在于将帐号与用户的输入相匹配。帐号是“cac”数组每个部分的最后一个元素 谁能告诉我我做错了什么 CheckingAccountCustomer[] cac = new Chec
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
}
CheckingAccountCustomer[]cac=新的CheckingAccountCustomer[3];//支票账户客户、姓名、PIN、余额、账号的数组
cac[0]=新支票账户客户(“Joe”,1234、5000、11111);
cac[1]=新支票账户客户(“Bob”,111190002460069);
cac[2]=新支票账户客户(“Jon”,2222400012345678);
//提示用户输入帐号
系统输出打印(“请插入借记卡或输入账号(8位):\n”);
sc.nextLine();
int accountNumber=sc.nextInt();
对于(int i=0;i
首先,您的for语句应为:
for (int i = 0; i < cac.length; i++)
for(int i=0;i
第二:根据
CheckingAccountCustomer
类的定义,引用cac[i][3]
也可能是错误的。您需要遍历数组。for循环中的条件语句检查int
是否大于CheckingAccountCustomer[]
,而不是数组的长度
如果有条件的语句也将int
与将进行计算的CheckingAccountCustomer
进行比较,则需要从CheckingAccountCustomer
中获取账号
for (int i = 0; i < cac.length; i++)
{
if (accountNumber == cac[i][3].getAccountNumber())
// DO STUFF WITH OTHER DATA
}
for(int i=0;i我认为应该有I
而不是cac
,因为cac
是一个数组
无论如何,请使用映射
,其中key是所需的数字,这样会更快。您没有正确地遍历数组。您应该使用以下for循环:
for (int i = 0; i < cac.length; i++) {
}
您应该为循环使用“foreach”语法:
for :CheckingAccountCustomer c : cac) {
if (c.getAccountNumber() == accountNumber)
}
请注意,我已经测试过accountNumber有一个访问器方法。您看到的错误是什么?在“cac[I][3]”的地方,我的编译器说“这种类型的表达式必须是数组类型,但它已解析为CheckingAccountCustomer”。也许您想要cac[I]。accountNumber
?您编写了CheckingAccountCustomer
类,而不是我们。这似乎是我使用的最佳选项,但是我没有访问器,现在我在编写它时遇到了问题。它是否类似于:return cac[i][3]?否。您尝试的语句引用的是二维数组,而这是您没有的。访问者是CheckingAccountCustomer
上返回特定信息(如帐号)的内容。
for :CheckingAccountCustomer c : cac) {
if (c.getAccountNumber() == accountNumber)
}