for循环中,break,continue和return有什么差别?

快乐鱼儿 1年前 ⋅ 1014 阅读

最近因为客户反映了一个bug,看了下代码逻辑,最终找到原因了。为了方便理解简单列个小例子,供大家参考。关于循环中这三个关键字的用法。

  • break: 此语句导致程序终止包含它的循环,并进行程序的下一阶段(整个循环后面的语句),即,不是跳到下一个循环周期而是退出循环。如果break语句包含在嵌套循环里,它只跳出最里面的循环。

例,如下代码:

public class Test {

    public static void main(String[] args) {

        for(int i=0; i<10; i++){

            if(i==5){

                break;
            }
            System.out.print(i+" ");
        }
    }
}

执行后,可以看到程序到5的时候跳出了循环。

 

 

  • continue: 循环语句里有此语句时,程序运行到此语句时,不在执行循环体里continue后面的语句而是跳到下一个循环入口处执行下一个循环。   把break改为continue。
public class Test {

    public static void main(String[] args) {

        for(int i=0; i<10; i++){

            if(i==5){
                continue;
            }
            System.out.print(i+" ");
        }
    }
}

可以看到只有5没有输出,也即当i=5时没有执行打印操作,直接到下一次循环。

 

 

  • return是表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return后函数就结束了,后面的语句不再执行。
public class Test {

    public static void fun(){

        for(int i=0; i<10; i++){
            if(i==5){
                return;
            }
            System.out.print(i+" ");
        }
        System.out.println("hello");
    }

    public static void main(String[] args) {

        //执行被调函数循环中的return后,则会继续执行主调函数下面的代码。
        fun();
        
        System.out.println("结束");
    }

}

可以看到后面的hello并没有打印出来。最后,输出了 ‘结束’。

 

 


全部评论: 0

    我有话说: