Java对象数组循环查找异常:超市程序匹配客户姓名与PIN码问题
解决超市客户匹配循环查找的问题
我来帮你搞定这个循环查找客户对象的问题!先梳理下你现有代码里的几个小问题,再给你完整的实现方案:
现有代码的问题点
- 增强for循环语法错误:你写的
for (int swalayanTinyV2 sw1 : sw)多了多余的int,正确写法应该直接声明对象类型swalayanTinyV2 - 变量拼写失误:代码里的
limi...应该是你定义的limit,但其实用增强for循环遍历数组根本不需要额外的limit变量 - 缺少核心匹配逻辑:还没编写判断当前对象姓名和PIN码是否与目标值匹配的代码
完整实现示例
假设你的swalayanTinyV2类已经有获取姓名和PIN码的getter方法(如果没有的话,需要先添加),以下是正确的查找逻辑:
// 先定义要查找的目标姓名和PIN码 String targetName = "Kevin"; int targetPin = 240898; // 初始化匹配结果对象 swalayanTinyV2 matchedCustomer = null; // 遍历数组查找匹配项 for (swalayanTinyV2 customer : sw) { // 对比当前客户的姓名和PIN码是否匹配目标值 if (customer.getNama().equals(targetName) && customer.getPin() == targetPin) { matchedCustomer = customer; break; // 找到匹配项后立刻退出循环,提升效率 } } // 处理查找结果 if (matchedCustomer != null) { System.out.println("找到匹配客户:" + matchedCustomer.getNama()); // 这里可以添加后续业务逻辑,比如查看客户余额、执行交易等 } else { System.out.println("未找到匹配的客户信息"); }
补充:确保你的swalayanTinyV2类有必要的getter方法
如果你的类里还没有获取属性的方法,需要补充以下代码(和你已有的构造方法配合使用):
public class swalayanTinyV2 { private String nama; private String noHp; private double saldo; private int pin; // 你已有的构造方法 public swalayanTinyV2(String nama, String noHp, double saldo, int pin) { this.nama = nama; this.noHp = noHp; this.saldo = saldo; this.pin = pin; } // 添加必要的getter方法 public String getNama() { return nama; } public int getPin() { return pin; } // 其他属性的getter/setter可以按需添加 }
这样修改后,就能顺利实现基于姓名和PIN码查找对应客户对象的功能啦!
内容的提问来源于stack exchange,提问作者Kevin M
相关产品推荐
相关产品推荐

