if语句使用break、continue和return区别

if语句

if语句分别使用return、continue、break的区别

  1. return
public static void main(String[] args) {
    System.out.println("start");
    for (int i = 0; i < 10; i++) {
        if (i == 2){
            return;
        }
        System.out.println(i);
    }
    System.out.println("end");
}
//执行结果
start
0
1

总结:

  • return会结束循环,后面的语句不会执行
  • return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行
  • return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致
  • return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值。
  1. break
public static void main(String[] args) {
    System.out.println("start");
    for (int i = 0; i < 10; i++) {
        if (i == 2){
            break;
        }
        System.out.println(i);
    }
    System.out.println("end");
}
//执行结果
start
0
1
end
  • break结束循环,后面的语句会执行
  • 只能在循环体内和switch语句体内使用break语句。
  • 当break出现在循环体中的switch语句体内时,其作用只是跳出该switch语句体。
  • 当break出现在循环体中,但并不在switch语句体内时,则在执行break后,跳出本层循环体。
  • 在循环结构中,应用break语句使流程跳出本层循环体,从而提前结束本层循环
  1. continue
public static void main(String[] args) {
    System.out.println("start");
    for (int i = 0; i < 10; i++) {
        if (i == 2){
            continue;
        }
        System.out.println(i);
    }
    System.out.println("end");
}
//执行结果
start
0
1
3
4
5
6
7
8
9
end
  • continue会结束本次判断的循环,跳入下一个循环
  • 其作用是结束本次循环,即跳过本次循环体中余下尚未执行的语句,接着再一次进行循环的条件判定。
  • 注意:执行continue语句并没有使整个循环终止。在while和do-while循环中,continue语句使得流程直接跳到循环控制条件的测试部分 ,然后决定循环是否继续进行。
  • 在for 循环中,遇到continue后,跳过循环体中余下的语句,而去对for语句中的“表达式3”求值,然后进行“表达式2”的条件测试,
    最后根据“表达式2”的值来决定for循环是否执行。在循环体内,不论continue是作为何种语句中的语句成分,都将按上述功能执行,这点与break有所不同
public class MySet2 {
    public static void main(String[] args) {
       fun();
    }

    private static void fun() {
        System.out.println("函数要执行了......");
        for (int i = 0; i < 5; i++) {
            if (i == 2){
                break;
            }
            System.out.println(i);
        }
        System.out.println("函数要停止了......");
    }
}

第一次使用break

执行结果为:

函数要执行了......
0
1
函数要停止了......

从结果中看到当使用break时,if语句执行了三次,当到第三次i的值等等于2了,那么就会执行break,开始执行break后就直接终止了for循环,for循环结束后会继续执行下面的代码,也就是 函数要停止了......

整个循环从外到里共三层,第一层是fun()函数,第二层是for循环,第三层是if判断

if语句中使用break后,第二层和第三层会停止执行,第一层会继续执行

第二次使用continue

执行结果为:

函数要执行了......
0
1
3
4
函数要停止了......

从结果中看到当使用continue时,if语句执行了一次,当i的值等等于2时,就结束了if判断,并且不会执行,但是for循环还是会继续执行,也就是说if是一次性代码,只要满足i的值等等于2,它就会执行,执行后下次就在for循环内就不会执行第二次

整个循环从外到里共三层,第一层是fun()函数,第二层是for循环,第三层是if判断

当if使用了continue之后,第三层会停止执行,第一层和第二层继续执行未完成的工作

第二次使用return

函数要执行了......
0
1

从结果看,使用return语句时,if会停止执行,for循环会停止执行,函数也会停止执行

整个循环从外到里共三层,第一层是fun()函数,第二层是for循环,第三层是if判断

当if使用了return之后,第一层、第二层、第三层会停止执行

上一篇:[Java03]流程操作 2021.11.08


下一篇:C语言——for循环