java中return语句的几种用法举例

 更新时间:2025年01月04日 10:37:13   作者:小小懒懒  
这篇文章主要介绍了Java中return语句的使用,包括有返回值类型的方法、提前返回、返回对象以及方法返回类型为void的情况,文中通过代码介绍的非常详细,需要的朋友可以参考下

在 Java 中,return语句用于从当前方法中返回一个值(如果方法有返回值类型)或者直接结束方法的执行(如果方法返回类型为void)。

1. 有返回值类型的方法

当一个方法声明了返回值类型(除了void之外的任何类型,比如intStringObject等),就必须在方法体内部使用return语句来返回一个与声明的返回值类型匹配的值。

例如,下面是一个简单的方法,用于计算两个整数的和并返回结果:

public class Main {
    public static int addNumbers(int num1, int num2) {
        int sum = num1 + num2;
        return sum;
    }

    public static void main(String[] args) {
        int result = addNumbers(3, 5);
        System.out.println("两数之和为:" + result);
    }
}

addNumbers方法中:

  • 首先计算了num1num2的和,并将结果存储在sum变量中。
  • 然后使用return语句返回了sum的值。因为addNumbers方法声明的返回值类型是int,所以返回的sum值(也是int类型)与方法的返回值类型相匹配。

main方法中,调用了addNumbers方法,并将返回的结果赋值给result变量,最后打印输出。

2. 提前返回(多条件判断场景)

在一些方法中,可能会根据不同的条件判断来决定是否提前返回结果。例如,下面是一个方法,用于判断一个整数是否为偶数,如果是偶数则返回true,否则返回false

public class Main {
    public static boolean isEven(int num) {
        if (num % 2 == 0) {
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        int number = 4;
        boolean result = isEven(number);
        System.out.println("该数是否为偶数:" + result);
    }
}

isEven方法中:

  • 首先通过if语句判断num除以2的余数是否为0。如果是,说明num是偶数,此时就使用return语句提前返回true,方法执行到此就结束了,不会再执行后面的代码。
  • 如果num除以2的余数不为0,则执行到方法末尾的return false语句,返回false

这种提前返回的方式在处理复杂的条件判断逻辑时非常有用,可以使代码更加清晰和高效。

3. 返回对象

除了返回基本数据类型,还可以返回对象。例如,下面是一个简单的类和方法,用于创建并返回一个Person对象:

class Person {
    private String name;
    private int age;

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public int Age() {
        return age;
    }
}

public class Main {
    public static Person createPerson(String name, int age) {
        return new Person(name, age);
    }

    public static void main(String[] args) {
        Person person = createPerson("Alice", 25);
        System.out.println("创建的人名为:" + person.getName() + ", 年龄为:" + person.Age());
    }
}

createPerson方法中,使用return语句返回了一个新创建的Person对象。因为createPerson方法声明的返回值类型是Person,所以返回的对象与方法的返回值类型相匹配。

4. 方法返回类型为void

当一个方法的返回值类型声明为void时,return语句仍然可以使用,但它的作用只是提前结束方法的执行,而不返回任何值。

例如,下面是一个方法,用于打印一些信息,然后提前结束方法:

public class Main {
    public static void printMessage() {
        System.out.println("这是一条消息。");
        return;
    }

    public static void main(String[] args) {
        printMessage();
    }
}

printMessage方法中,先打印了一条消息,然后使用return语句提前结束了方法的执行。虽然这里的return语句没有返回任何值,但它起到了在需要的时候提前终止方法运行的作用。

return 语句会结束整个程序的执行吗? 

  • return语句在一个非main方法(普通方法)内部使用时,它只会结束当前方法的执行,而不会结束整个程序。
    public class Main {
        public static int add(int a, int b) {
            return a + b;
        }
        public static void main(String[] args) {
            int result = add(3, 5);
            System.out.println("结果是:" + result);
            System.out.println("程序继续执行");
        }
    }
  • 在这个例子中,add方法中的return语句只是返回a + b的结果并结束add方法的执行。main方法中的代码会继续执行,在获取add方法的结果后,会继续打印输出 “程序继续执行”。

main方法内部的情况

  • return语句在main方法内部使用时,它会结束整个程序的执行。因为main方法是 Java 程序的入口点,当main方法结束时,程序也就结束了。
    public class Main {
        public static void main(String[] args) {
            System.out.println("程序开始");
            return;
            System.out.println("这行代码不会执行");
        }
    }

    在这个main方法中,return语句在打印 “程序开始” 之后就结束了整个程序的运行,所以后面的 “这行代码不会执行” 不会被输出。不过在实际应用中,main方法中的return语句通常用于返回一个表示程序执行状态的值(如0表示正常结束),并且在一些复杂的程序结构中可能会根据条件判断来决定是否提前结束程序运行。

附:java中return怎么返回多个值

在Java中,一个方法只能返回一个值。但是可以通过不同的方式返回多个值,例如:

  • 使用数组或集合:可以将多个值保存在数组、列表或其他集合中,然后将该数组或集合作为方法的返回值返回。
public static List<Integer> getMultipleValues() {
    List<Integer> values = new ArrayList<>();
    values.add(1);
    values.add(2);
    values.add(3);
    return values;
}
  • 使用自定义对象:可以定义一个包含多个值的自定义对象,然后将该对象作为方法的返回值返回。
public class CustomObject {
    private int value1;
    private int value2;
    
    public CustomObject(int value1, int value2) {
        this.value1 = value1;
        this.value2 = value2;
    }
    
    public int getValue1() {
        return value1;
    }
    
    public int getValue2() {
        return value2;
    }
}

public static CustomObject getMultipleValues() {
    return new CustomObject(1, 2);
}
  • 使用Map:可以使用Map来存储多个键值对,然后将该Map作为方法的返回值返回。
public static Map<String, Integer> getMultipleValues() {
    Map<String, Integer> values = new HashMap<>();
    values.put("value1", 1);
    values.put("value2", 2);
    return values;
}

这些是一些常见的方法,可以用来返回多个值。根据具体的需求,选择适合的方式来返回多个值。

总结 

到此这篇关于java中return语句的几种用法举例的文章就介绍到这了,更多相关java中return用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java全面分析面向对象之继承

    Java全面分析面向对象之继承

    继承就是可以直接使用前辈的属性和方法。自然界如果没有继承,那一切都是处于混沌状态。多态是同一个行为具有多个不同表现形式或形态的能力。多态就是同一个接口,使用不同的实例而执行不同操作
    2022-04-04
  • Java实现顺序栈原理解析

    Java实现顺序栈原理解析

    这篇文章主要介绍了Java实现顺序栈原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-11-11
  • Java之 TreeSet的详细使用说明

    Java之 TreeSet的详细使用说明

    这篇文章主要介绍了Java之 TreeSet的详细使用说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java线程的start方法回调run方法的操作技巧

    Java线程的start方法回调run方法的操作技巧

    面试过程中经常会被面试官问到为什么我们调用start()方法时会执行run()方法,为什么不能直接调用run()方法,问的一头雾水,今天小编给大家介绍下Java线程的start方法回调run方法的操作技巧,需要的朋友参考下吧
    2017-11-11
  • LinkedBlockingQueue链式阻塞队列的使用和原理解析

    LinkedBlockingQueue链式阻塞队列的使用和原理解析

    这篇文章主要介绍了LinkedBlockingQueue链式阻塞队列的使用和原理解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Spring Cloud Gateway 整合 knife4j 聚合接口文档功能

    Spring Cloud Gateway 整合 knife4j 聚合接口文档功能

    这篇文章主要介绍了Spring Cloud Gateway 整合 knife4j 聚合接口文档的相关知识,我们可以基于 Spring Cloud Gateway 网关 + nacos + knife4j 对所有微服务项目的接口文档进行聚合,从而实现我们想要的文档管理功能,需要的朋友可以参考下
    2022-02-02
  • Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法

    Eclipse运行android项目报错Unable to build: the file dx.jar was not

    今天小编就为大家分享一篇关于Eclipse运行android项目报错Unable to build: the file dx.jar was not loaded from the SDK folder的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • MyBatis如何调用存储过程

    MyBatis如何调用存储过程

    这篇文章主要介绍了MyBatis如何调用存储过程问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java实现堆排序和图解

    Java实现堆排序和图解

    如果将堆理解为二叉树,那么树中任一非叶结点的关键字均不大于(或不小于)其左右孩子(若存在)结点的关键字,堆排序的时间复杂度为O(N*logN),这里我们就来详解堆排序算法原理及Java版的代码实现
    2021-07-07
  • spring注解如何为bean指定InitMethod和DestroyMethod

    spring注解如何为bean指定InitMethod和DestroyMethod

    这篇文章主要介绍了spring注解如何为bean指定InitMethod和DestroyMethod,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11

最新评论