【发布时间】:2017-12-30 10:09:42
【问题描述】:
以下是我的程序的一些背景:
为了上课,我正在制作一个虚假的登录系统。
它使用一组对象,每个对象都分配了属性。
当我尝试检索用户名/密码对的对象索引时,似乎出现问题。
我想要这个索引号,这样我就可以在用户“登录”时对他们做更多的事情。
但是,无论用户名密码对如何,获取正确的密码对都存在问题。
以下是我尝试检索它的方式:
static int getIndex(User[] users, int index, String userID, String userPin)
{
for (int i = 0; i < users.length; ++i)
{
if (users[i].getUserID().equals(userID) && users[i].getPassword().equals(userPin));
{
System.out.print(i);
index = i;
}
}
return index;
}
}
我在打印语句中添加了以查看它在做什么。
它打印
012
并将最后一个数字(在本例中为 2)发送到要使用的方法之外。
或者,如果我告诉它在 if 块内返回,无论我使用什么用户名,它都会返回 0。
我还在这个网站上四处寻找其他解决方案,除了一些使用数组列表之外,它们似乎都与我正在尝试做的非常相似。我不确定我哪里出错了。
如果可能,我想将我的对象数组保留为对象数组,或者如果确实需要更改,我可能会来回快速转换。
最终,我希望能够根据输入的用户名和密码获取索引(0、1 或 2)并将其返回以用作其他地方的索引。
下面是其余的代码,它也有一个类可以使用,但我不想用代码轰炸人们。
import java.util.Scanner;
public static void main(String[] args) {
User[] users = new User[3];
users[0] = new User();
users[1] = new User();
users[2] = new User();
users[0].setFirstname("Matt");
users[0].setLastname("Miller");
users[0].setUserID("aaa");
users[0].setPassword("111");
users[1].setFirstname("Susie");
users[1].setLastname("Smith");
users[1].setUserID("bbb");
users[1].setPassword("222");
users[2].setFirstname("Joe");
users[2].setLastname("Jones");
users[2].setUserID("ccc");
users[2].setPassword("333");
Scanner userInput = new Scanner(System.in);
System.out.println("Enter your user ID");
String userID = userInput.nextLine();
System.out.println("Enter your PIN");
String userPin= userInput.nextLine();
int Index = 0;
Index = getIndex(users, Index, userID, userPin);
System.out.printf("Welcome %s %s\n\n", users[Index].getFirstname(), users[Index].getLastname());
}
感谢您的帮助!
【问题讨论】:
标签: java arrays object indexing attributes