Java应用如何解决无效产品码错误提示重复输出的问题
方案1:标记位+提前终止循环(全Java版本兼容)
该方案兼容性最强,同时匹配到目标后直接终止循环,避免无效遍历:
static void searchProduct() { System.out.print("Please enter product code to search: "); String searchTerm = in.nextLine().toUpperCase(); boolean productFound = false; for (int i = 0; i < report.size(); i++) { if (report.get(i).code.equals(searchTerm)) { // 此处填写展示产品详情的代码 productFound = true; break; // 匹配到目标后直接结束循环,无需继续遍历 } } // 循环结束后统一判断是否未匹配到产品 if (!productFound) { System.out.println("The product cannot be located. Invalid Product"); } // 此处填写提示用户返回菜单或退出的代码 }
方案2:Stream API实现(Java 8及以上版本适用)
利用Java 8引入的Stream API可以简化代码,逻辑更清晰:
static void searchProduct() { System.out.print("Please enter product code to search: "); String searchTerm = in.nextLine().toUpperCase(); // 遍历查找第一个匹配的产品 Optional<Product> matchedProduct = report.stream() .filter(item -> item.code.equals(searchTerm)) .findFirst(); if (matchedProduct.isPresent()) { // 调用matchedProduct.get()获取产品对象,展示详情 } else { System.out.println("The product cannot be located. Invalid Product"); } // 此处填写提示用户返回菜单或退出的代码 }
两种方案都可以保证无效产品提示仅输出一次,且相比原逻辑减少了不必要的遍历步骤,执行效率更高。
内容的提问来源于stack exchange,提问作者Brad
相关产品推荐
相关产品推荐

