每天一个知识点Java(1) return、break和continue的区别还傻傻分不清

每天一个知识点Java(1) return、break和continue的区别还傻傻分不清,第1张

目标

returnbreak和continue的在循环体中的区别
for、while、stream.foreach()都有效么?
demo代码地址 https://gitcode.net/kiduo08/learning-junior.git
详细视频教程https://www.bilibili.com/video/BV1RY4y1t7DS/

区别

1、for循环-continue作用:结束本次循环,继续for未执行的循环。

public class Junior1 {
    public static void main(String[] args) {
        int result = continueMethod();
        System.out.println("函数调用返回结果=="+result);
    }
    static int continueMethod(){
        int returnInt = 0;
        for(int i=1;i<5;i++){
            if(i == 3){
                continue;
            }
            System.out.println(i);
            returnInt = i;
        }
        System.out.println("for循环执行结束");
        return returnInt;
    }
}

输出结果:

1
2
4
for循环执行结束
函数调用返回结果==4

结论:输出结果只少了一个3,可以得出continue是结束本次i==3的循环,从i==4开始继续循环。

2、for循环-break作用:跳出循环执行for循环后面的语句

public class Junior1 {
	public static void main(String[] args) {
  		int result = breakMethod();
        System.out.println("函数调用返回结果=="+result);
   	 }
    static int breakMethod(){
        int returnInt = 0;
        for(int i=1;i<5;i++){
            if(i == 3){
                break;
            }
            System.out.println(i);
            returnInt = i;
        }
        System.out.println("for循环执行结束");
        return returnInt;
    }
}

输出结果:

1
2
for循环执行结束
函数调用返回结果==2

结论:3、4未输出,输出for循环执行结束,得出break是跳出当前for循环体,继续for循环体后面的语句。

3、for循环-return作用:直接结束函数调用并返回结果。

public class Junior1 {
    public static void main(String[] args) {
		int result = returnMethod();
        System.out.println("函数调用返回结果=="+result);
    }
    static int returnMethod(){
        int returnInt = 0;
        for(int i=1;i<5;i++){
            if(i == 3){
                return i;
            }
            System.out.println(i);
            returnInt = i;
        }
        System.out.println("for循环执行结束");
        return returnInt;
    }
}

输出结果

1
2
函数调用返回结果==3

结论:3、4 与for循环执行结束都未输出,得出return直接结束本次函数调用。

总结

一、作用不同

  1. continue:执行continue *** 作,跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。
  2. break:执行break *** 作,跳出所在的当前整个循环,到外层代码继续执行。
  3. return:执行return *** 作,直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。

二、结束不同

  1. continue:continue结束的是本次循环,将接着开始下一次循环。
  2. return:return同时结束其所在的循环和其外层循环。
  3. break:结束其所在的循环。

三、补充
1、break: 如果有两层循环 break 在最里面的一层循环,会跳出两层循环还是会跳出一层循环呢?

 static String breakMethod(String[] arr){
        String returnString = "";
        for(int k=1;k<3;k++){
            System.out.println(k);
            for(int i=0;i<arr.length;i++){
                if("c".equals(arr[i])){
                    System.out.println("当前判断为true");
                    break;
                }
                System.out.println(arr[i]);
                returnString = arr[i];
            }
        }
        System.out.println("breakMethod执行结束");
        return returnString;
    }
1
a
b
当前判断为true
2
a
b
当前判断为true
breakMethod执行结束
函数调用返回结果==b

根据结果可以看出、break 只是跳出当前循环(for(int i=0;i)这个循环

2、如果是stream.forEach()怎么报错,怎么来替代呢?
stream.forEach()方法中使用 continue与break 的话会编译报错,使用return 来替代continue;
视频演示详细讲解https://www.bilibili.com/video/BV11B4y117yq?spm_id_from=333.999.0.0

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/871625.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)