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关键字有两个关键作用:
- 满足Java语法强制要求:只要方法不是
void类型(也就是声明了要返回某个类型的值),就必须用return返回对应类型的数据,否则编译器直接报错——这是Java为了保证方法行为符合声明的硬性规定。 - 把计算结果传递给调用者:
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
相关产品推荐
相关产品推荐

