【发布时间】:2020-02-19 19:11:20
【问题描述】:
所以我这里有这个方法
while(oMenu == 1 || oMenu == 2){
oMeny = Kbd.readInt("\nClick 1 to make an account\nClick 2 to login\nClick 3 to exit the program");
if(oMeny == 1){
for(int i = 0; Account[i] != null; i++){
if(Account[i] == null){
pos = i;
}
}
Account[pos] = new Account();
}
if(oMeny == 2){
String s = Kbd.readString("Input your accountnumber: ");
for(int i = 0; Account[i] != null; i++){
if(Account[i] != null && s.equals(Account[i].getAccountNumber())){
System.out.println("Welcome!");
// Here is rest of my code , the "inner" menu that works menyMetod(iMeny,mMeny);
}
else{
System.out.println("There are no accounts with that given accountnumber!");
}
}
}
}
}
我想了解为什么如果我访问 oMeny == 1 并创建 2 个帐户 为什么我似乎无法访问我创建的第一个帐户,而是访问最新的帐户?似乎我的数组以某种方式“覆盖”了第一个空位置。基本上我想在我的数组中找到第一个空位置,所以在第一种情况下它总是索引 0,然后下次我再次创建帐户时,它应该是逻辑上的索引 1。
编辑:这是我的 Account 类代码
public class Account{
private int money, transactions;
private String AccountNumber;
public Account(){
money = Kbd.readInt("\nHow much money do you want to put in?");
AccountNumber = Kbd.readString("\nWhat account number do you want?");
}
【问题讨论】:
-
请注意:您的第一个 if 语句引用了一个名为“oMenu”的变量,您是说它是“oMeny”吗?
-
是的,应该是,我将变量名翻译成英文所以可能错过了那部分。
-
创建
new Account()时,accountNumber未设置,因此在搜索时永远不会匹配。此外,数组不是动态大小的 - 你可以使用列表吗?或者使用键为 accountNumber 的 Map 可能更好。 -
哦,我应该提一下,在我设置的 Account 类中,您输入 Account number 这里是 account 类的代码 编辑:我将把代码放在帖子的新编辑中
-
目前在我的 Java 类中,除了数组之外,我们还没有使用任何其他数据结构。所以我知道我可以使用地图或列表,但最好不要使用它们
标签: java arrays while-loop logic account