鱼C论坛

 找回密码
 立即注册
查看: 2691|回复: 3

[已解决]有关return语句的问题

[复制链接]
发表于 2020-4-13 20:56:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
在定义方法如果需要返回值时需要用到return语句返回一个值,要输出这个值时可以使用System.out.println(方法)。那么为什么在方法中不能写System.out.println(return 值)呢?
这个return值为什么不能由方法直接输出哪?return语句到底是怎么一回事呢?
最佳答案
2020-4-13 21:34:08
本帖最后由 sunrise085 于 2020-4-13 21:48 编辑

System.out.println(方法)  和  return 没有冲突啊。
你可以在方法中将return的值进行println输出、

方法之所以有return,是因为调用该方法的程序需要这段代码(该方法)的运行结果。
若是调用该方法的程序不需要此结果,那就可以不用return任何值啊
看以下程序,两个方法,一个需要返回值,一个不需要返回值
import java.io.*;
class test  
{
        public static void main (String[] args) throws java.lang.Exception
        {
        int a=23;
        int b=98;
        int c=max(a,b);
        System.out.println("main 中 a 和 b 中较大的值是"+c);
        noreturn(a,b);
        }
        public static int max(int num1, int num2) {//这个方法需要返回值,但是同时也可以在方法中输出
        int result;
        if (num1 > num2)
         result = num1;
        else
         result = num2;
        System.out.println("方法中输出 a 和 b 中较大的值是"+result);
        return result; 
   }
   public static void noreturn(int num1, int num2) {//这个方法不需要返回值,就没有return
        int result;
        result=num1+num2;
        System.out.println("a 与 b 的和:"+result);
   }
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-4-13 21:06:46 | 显示全部楼层
你输出了,调用的也接受不到,反倒是你接受到了。
return 就是让这个值被调用者接收到,而不是你。

可能描述的不大恰当,见谅。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 21:34:08 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-4-13 21:48 编辑

System.out.println(方法)  和  return 没有冲突啊。
你可以在方法中将return的值进行println输出、

方法之所以有return,是因为调用该方法的程序需要这段代码(该方法)的运行结果。
若是调用该方法的程序不需要此结果,那就可以不用return任何值啊
看以下程序,两个方法,一个需要返回值,一个不需要返回值
import java.io.*;
class test  
{
        public static void main (String[] args) throws java.lang.Exception
        {
        int a=23;
        int b=98;
        int c=max(a,b);
        System.out.println("main 中 a 和 b 中较大的值是"+c);
        noreturn(a,b);
        }
        public static int max(int num1, int num2) {//这个方法需要返回值,但是同时也可以在方法中输出
        int result;
        if (num1 > num2)
         result = num1;
        else
         result = num2;
        System.out.println("方法中输出 a 和 b 中较大的值是"+result);
        return result; 
   }
   public static void noreturn(int num1, int num2) {//这个方法不需要返回值,就没有return
        int result;
        result=num1+num2;
        System.out.println("a 与 b 的和:"+result);
   }
}

评分

参与人数 1荣誉 +3 收起 理由
ctOS_ + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-13 21:38:08 From FishC Mobile | 显示全部楼层
你可以写一个打印,然后每次调用这个函数时都会打印。但问题在于你这样就写死了。如果是需要将这个值传给变量a呢?你有返回语句,比如说你返回了一个20,现在你定义一个int变量a刚刚能收下这个20。但如果没return语句,那就不行。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 17:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表