You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java加法函数中return关键字的作用:为何无return能相加、仅return不输出?

关于Java中return关键字的作用解析

嘿,这个问题问得特别到位!咱们来一步步把return的作用和你遇到的现象讲明白:

首先先看你的代码:

public class AddVariation { 
    public static void main(String[] args) { 
        AddNumbers(); 
    } 
    private static int AddNumbers() { 
        Scanner Num = new Scanner(System.in); 
        System.out.print("Number C :"); 
        int C = Num.nextInt(); 
        System.out.print("Number D :"); 
        int D = Num.nextInt(); 
        System.out.print("Sum is :" + (C + D)); 
        return (C+D); 
    } 
}

先搞懂return的核心作用

你定义的AddNumbers()方法声明了返回类型是int,这里的return关键字有两个关键作用:

  1. 满足Java语法强制要求:只要方法不是void类型(也就是声明了要返回某个类型的值),就必须用return返回对应类型的数据,否则编译器直接报错——这是Java为了保证方法行为符合声明的硬性规定。
  2. 把计算结果传递给调用者:return (C+D)是把方法内部算出的和,传递到调用这个方法的地方(也就是main函数里的AddNumbers()这一行)。注意:return本身不会主动把结果输出到控制台,它只是把结果“交出去”而已。

解答你的两个疑问

疑问1:为什么去掉return语句,代码仍能完成相加?

首先纠正一个小细节:严格来说,如果删掉return (C+D),你的代码是过不了编译的——Java要求返回类型为int的方法必须返回int值。你可能是测试时没彻底删掉,或者IDE临时做了兼容?

但从逻辑上看:你能看到相加结果,完全是因为代码里的System.out.print("Sum is :" + (C + D))语句——这个是直接把计算结果输出到控制台的操作,和return半毛钱关系没有。只要这个print语句存在,(假设编译能过的话)不管return有没有,你都能看到相加的结果。

疑问2:为什么去掉print语句,仅保留return(C+D),却不会输出结果?

因为return只是把结果交还给main函数里的AddNumbers()调用处,但你在main里调用的时候,只是写了AddNumbers();——相当于你拿到了返回的和,但直接把它丢掉了,没有做任何输出或者保存操作。

如果想看到结果,你需要在main里接收这个返回值并打印,比如改成这样:

public static void main(String[] args) { 
    int result = AddNumbers(); // 接收return回来的结果
    System.out.println("Sum is: " + result); // 输出结果
} 

这样就能看到return传递回来的数值了。

总结一下

return的核心是传递结果,而不是输出结果;输出结果是System.out.print/println()的专属活儿。return的价值在于让方法的计算结果可以被调用者复用——比如你可以用这个结果做进一步的计算、存到变量里、写入文件等等,而不只是打印出来看一眼~

内容的提问来源于stack exchange,提问作者what_code

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:10:40