在 Java 里提到 continue,通常指的是循环中的 continue 语句。
continue 用不好确实会明显降低代码可读性,下面从问题、原则、改写方式、替代方案几个角度说明如何提高可读性。
continue 会降低可读性常见反例:
for (Order order : orders) {
if (order == null) continue;
if (!order.isValid()) continue;
if (order.isCancelled()) continue;
if (order.getAmount() <= 0) continue;
process(order);
}
问题:
continue 分散在循环中把“不满足就跳过”改成“满足才处理”。
continue 数量一个循环里 continue 越多,越难读。
判断条件复杂时,抽成方法。
如果是方法内部循环:
void handleOrders(List<Order> orders) {
for (Order order : orders) {
if (!shouldProcess(order)) {
continue;
}
process(order);
}
}
boolean shouldProcess(Order order) {
return order != null
&& order.isValid()
&& !order.isCancelled()
&& order.getAmount() > 0;
}
✅ 好处:
最推荐、可读性最高:
orders.stream()
.filter(Objects::nonNull)
.filter(Order::isValid)
.filter(o -> !o.isCancelled())
.filter(o -> o.getAmount() > 0)
.forEach(this::process);
✅ 优点:
continue即使使用 continue,也要集中、统一:
for (Order order : orders) {
if (!isValidOrder(order)) {
continue;
}
process(order);
}
✅ 一个 continue,一个判断,清晰明确。
❌ 嵌套 if + continue
for (Order order : orders) {
if (order != null) {
if (order.isValid()) {
if (!order.isCancelled()) {
process(order);
}
}
}
}
❌ 多个分散 continue
continue本身不是问题,分散的“否定逻辑”才是问题。
continuecontinue如果你有具体代码段,我可以直接帮你重构并解释每一步为什么更易读。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。