我正在研究一个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

09-28 01:37