我正在研究一个ATM模拟程序。目前,我正在研究验证用户输入的方法。我有一个带有银行卡对象的arraylist这些对象包含我想要的3个变量
检查给定的reknr和pasnr组合是否与我的带有银行卡对象的arraylist中的任何reknr和pasnr组合相等。如果arraylist包含给定的组合,则该方法必须返回true,否则必须返回false。
public static boolean reknrpasnrCheckOke(String reknr,String pasnr){
for (int i=0; i<rekpaspin.size(); i++){
if (rekpaspin.get(i).reknr.equals(reknr) && rekpaspin.get(i).pasnr.equals(pasnr))
return true;
}
return false;
}
}
不管输入什么总是返回false,如何解决呢?
编辑::
我在if之后忘记了{,因此将代码更改为:
public static boolean reknrpasnrCheckOke(String reknr,String pasnr){
for (int i=0; i<rekpaspin.size(); i++){
if (rekpaspin.get(i).reknr.equals(reknr) && rekpaspin.get(i).pasnr.equals(pasnr)){
return true;
}
}
return false;
}
但是仍然是同样的问题。
最佳答案
您只检查列表中的第一项。如果不匹配,则您立即返回false
而不检查其余项目。
在return false;
循环结束后移动for
。