return 的作用
return 关键字在方法中有两个核心作用:返回结果和结束方法执行。它在有返回值方法和无返回值(void)方法中表现不同。
在无返回值方法(void)中
return 仅用于提前结束方法的执行,不返回任何数据。
public static void say(int n) {
if (n == 2) {
if (n < 3) {
return; // 提前结束,后续代码不再执行
}
return;
} else if (n == 3) {
return;
} else {
// 其他逻辑
}
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
}Code language: JavaScript (javascript)
调用 say(2) 时,方法在 return 处直接结束,不会输出任何内容。
在有返回值方法中
return 必须返回一个与声明类型一致的值,同时结束方法。
public static int add(int n, int b) {
return n + b; // 返回计算结果并结束方法
}Code language: PHP (php)
return 在不同场景下的行为
| 场景 | return 行为 |
|---|---|
void 方法 | return; 仅结束方法,不能有返回值 |
| 有返回值方法 | return 值; 返回值并结束方法 |
多层嵌套 if 中 | 遇到 return 立即结束整个方法 |
| 循环体中 | 遇到 return 直接结束方法,循环也终止 |
完整示例代码
package V052;
public class Test {
public static void main(String[] args) {
say(2);
int r = add(1, 2);
System.out.println("add 结果:" + r);
}
public static void say(int n) {
if (n == 2) {
if (n < 3) {
return; // 提前结束
}
return;
} else if (n == 3) {
return;
} else {
// 其他情况
}
System.out.println("1");
System.out.println("2");
System.out.println("3");
System.out.println("4");
}
public static int add(int n, int b) {
return n + b;
}
}Code language: PHP (php)
return 与 break 的区别
| 关键字 | 作用范围 | 说明 |
|---|---|---|
return | 整个方法 | 结束当前方法,回到调用处 |
break | 循环或 switch | 只跳出当前循环或 switch 块 |
public static void test() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
break; // 只跳出循环,后续代码继续执行
}
System.out.println(i);
}
System.out.println("循环结束"); // 这行会输出
}
public static void test2() {
for (int i = 0; i < 5; i++) {
if (i == 2) {
return; // 整个方法结束,后续代码不再执行
}
System.out.println(i);
}
System.out.println("循环结束"); // 这行不会输出
}Code language: JavaScript (javascript)
注意事项
| 要点 | 说明 |
|---|---|
void 方法中 return 后不能有值 | return 1; 在 void 方法中编译错误 |
有返回值方法必须保证每条路径都有 return | 否则编译错误 |
return 后不能写代码 | 编译器报”不可达代码”错误 |
| 可多层嵌套使用 | 任何层级的 return 都会直接结束整个方法 |
Previous: 带参方法
Next: 调用函数时的参数传递