Java 中 return 和 break 核心辨析
return 和 break 是 Java 中完全不同用途 的关键字,核心区别一句话总结:break 是用来跳出循环 /switch,不结束方法;return 是用来结束整个方法,直接返回结果。
下面从作用场景、代码示例两个维度彻底讲清楚。
一、核心定义与作用
- break(中断)
-
作用对象 :仅用于 for/while/do-while 循环 或 switch 语句
-
作用效果:
-
跳出当前最近一层循环 /switch,继续执行循环 /switch 后面的代码
-
不会结束所在的方法,方法会继续往下运行
-
-
关键字定位:循环 /switch 控制关键字
- return(返回)
-
作用对象 :用于所有方法(构造方法除外)
-
作用效果:
-
立即终止当前整个方法
-
可以携带一个返回值(有返回值方法),或单纯结束方法(无返回值
void方法) -
方法内
return之后的所有代码都不会执行
-
-
关键字定位:方法流程控制关键字
二、直观代码对比
java
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
break; // 跳出当前for循环
}
System.out.println("循环:" + i);
}
// 循环结束后,代码继续执行
System.out.println("循环结束,方法继续运行");
}
}
- return 示例(结束方法,后续代码全不执行)
java
public class Test {
public static void main(String[] args) {
for (int i = 1; i <= 5; i++) {
if (i == 3) {
return; // 直接结束整个main方法
}
System.out.println("循环:" + i);
}
// 这行代码永远不会执行
System.out.println("循环结束,方法继续运行");
}
}
数组元素交换位置
java
/*接收三个参数:数组 arr、下标 i、下标 j
用临时变量 temp 保存 arr[i] 的值
把 arr[j] 的值赋给 arr[i]
把临时变量中保存的原值赋给 arr[j]
打印交换后的完整数组*/
public static void rev(int[] arr,int i,int j){
int temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
System.out.println(Arrays.toString(arr));
}
/*只接收一个参数:数组 arr
用临时变量 temp 保存数组最后一个元素 arr[arr.length-1]
把数组第一个元素 arr[0] 赋给最后一个位置
把临时变量保存的最后一个元素赋给第一个位置
打印交换后的完整数组*/
public static void re(int[] arr){
int temp=arr[arr.length-1];
arr[arr.length-1]=arr[0];
arr[0]=temp;
System.out.println(Arrays.toString(arr));
}