美文网首页
示例代码--Break和Continue的细微区别

示例代码--Break和Continue的细微区别

作者: 雨读千年 | 来源:发表于2018-03-15 22:58 被阅读0次

    结论:

    A 在for循环中没有switch case的情况下

    1. for循环中遇到break则跳过break后面的语句并结束循环,执行循环之后的代码
    2. for循环中遇到continue则跳过continue后面的循环内部的语句,并执行下一次的循环,循环之后的语句也照常执行

    B 在for循环中含有switch case的情况下,

    1. switch case 遇到break则跳出case,把case后面的,循环内部的语句执行完毕,然后才执行下一次的循环
    2. switch case 遇到continue后面的for循环内部的语句全部不执行,直接执行下一次的循环,直到for循环结束之后,才继续执行for循环后面的语句
    3. 不常用的一个点:continue可以配合跳转标签进行很复杂的跳转流程

    package com.test;
    
    public class TestBreakContinue {
        public static void main(String[] args) {
            //A 在for循环中没有switch case的情况下,
            //    for循环中遇到break则跳过break后面的语句并结束循环,执行循环之后的代码
            //    for循环中遇到continue则跳过continue后面的循环内部的语句,并执行下一次的循环,循环之后的语句也照常执行
            System.out.println("#########test_break_with_out_switch_case#########");
            test_break_with_out_switch_case();
            System.out.println("#########test_break_with_out_switch_case#########");
            System.out.println("#########test_continue_with_out_switch_case#########");
            test_continue_with_out_switch_case();
            System.out.println("#########test_continue_with_out_switch_case#########");
            //B 在for循环中含有switch case的情况下,
            //    switch case 遇到break则跳出case,把case后面的,循环内部的语句执行完毕,然后才执行下一次的循环
            //    switch case 遇到continue后面的for循环内部的语句全部不执行,直接执行下一次的循环,直到for循环结束之后,才继续执行for循环后面的语句
            //    不常用的一个点:continue可以配合跳转标签进行很复杂的跳转流程
            System.out.println("#########test_continue_with_switch_case#########");
            test_continue_with_switch_case(3);
            System.out.println("#########test_continue_with_switch_case#########");
            System.out.println("#########test_break_with_switch_case#########");
            test_break_with_switch_case(3);
            System.out.println("#########test_break_with_switch_case#########");
        }
    
        public static void test_break_with_out_switch_case() {
            for (int i = 1; i < 10; i++) {
                if (i == 5)
                    break;
                System.out.println("i = " + i);
            }
            System.out.println("end");
        }
    
        public static void test_continue_with_out_switch_case() {
            for (int i = 1; i < 10; i++) {
                if (i == 5)
                    continue;
                System.out.println("i = " + i);
            }
            System.out.println("end");
        }
    
        public static void test_continue_with_switch_case(int max) {
            for (int i = 1; i < max; i++) {
                System.out.println("----------------------");
                switch (i) {
                    case 1:
                        System.out.println(1);
                        continue;
                    case 2:
                        System.out.println(2);
                        continue;
                    case 3:
                        System.out.println(3);
                        continue;
                    default:
                        System.out.println("default!");
                }
                System.out.println("i = " + i);
            }
            System.out.println("end");
        }
        public static void test_break_with_switch_case(int max) {
            for (int i = 1; i < max; i++) {
                System.out.println("----------------------");
                switch (i) {
                    case 1:
                        System.out.println(1);
                        break;
                    case 2:
                        System.out.println(2);
                        break;
                    case 3:
                        System.out.println(3);
                        break;
                    default:
                        System.out.println("default!");
                }
                System.out.println("i = " + i);
            }
            System.out.println("end");
        }
    }
    

    相关文章

      网友评论

          本文标题:示例代码--Break和Continue的细微区别

          本文链接:https://www.haomeiwen.com/subject/wcvkqftx.html