Java中的for循环

for循环的执行过程

声明条件变量 i ,且只执行一次
表达式判断
执行循环体
最后执行 i++ 或 ++i

 

利用声明变量条件只会执行一次的特性可以解决一个问题:https://leetcode-cn.com/problems/cong-shang-dao-xia-da-yin-er-cha-shu-ii-lcof/

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行:

public List<List<Integer>> levelOrder1(TreeNode root) {
        Queue<TreeNode> queue = new LinkedList<>();
        List<List<Integer>> res = new ArrayList<>();
        if(root != null) queue.add(root);
        while(!queue.isEmpty()) {
            List<Integer> tmp = new ArrayList<>();
            for(int i = queue.size(); i > 0; i--) {
                TreeNode node = queue.poll();
                tmp.add(node.val);
                if(node.left != null) queue.add(node.left);
                if(node.right != null) queue.add(node.right);
            }
            res.add(tmp);
        }
        return res;
    }

 

在上述代码for循环中,由于queue的大小是在变化的,故将其放在声明条件变量的文位置,即确定执行循环的次数,不会因为queue大小的改变,而改变循环的次数。

for循环中的continue 和 break

当遇到continue时,不会执行continue后面的代码,但是最后会执行 i++ 或 ++i
当遇到break时,会直接跳出循环,不会执行 i++ 或 ++i

posted @ 2021-09-19 15:36  木有呂朋友  阅读(132)  评论(0编辑  收藏  举报