java跳出多层循环

我们都知道break结束最近一层循环,continue结束本次循环

那如果我满足条件的时候想要结束两层循环怎办?

java还真有这种办法

//给外层循环一个名字
outLoop:
        while (!queue.isEmpty()) {
            Graph7.Node node = queue.remove();
            Map<Graph7.Node, Graph7.Edge> rowMap = edgeTable.row(node);
            for (Graph7.Node node1 : rowMap.keySet()) {
                Graph7.Edge edge = edgeTable.get(node, node1);
                if (!node1.isVisit() && edge != null && edge.getC() > 0) {
                    result.put(preNode, node1, edge.getC());
                    node1.setVisit(true);
                    System.out.println(node1);
                    preNode = node1;
                    queue.add(node1);
//满足条件,结束外层循环
                    if (node1.equals(end)) {
                        break outLoop;
                    }
                    break;
                }
            }
        }

 

posted @ 2021-10-20 11:17  Mars.wang  阅读(146)  评论(0编辑  收藏  举报