return 的作用

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 都会直接结束整个方法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注