| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1728 人关注过本帖
标题:关于编写函数里 return 的问题,本人菜鸟一枚
只看楼主 加入收藏
chenglong0
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2017-10-28
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
关于编写函数里 return 的问题,本人菜鸟一枚
public class Suzu
{
  public static void main(String[]args)
  {
    int[] suzu=new int[]{1,33,44,55,66,77};
    int y=hanSu(suzu);
   
  }
  public static int hanSu(int []suzu)
  {
     int y=suzu[0];
    for(int x=1;x<suzu.length;x++)
    {
      if(suzu[x]>y)
           y=suzu[x];
     }
      return y;
     
   }
  
}

问题1:在hanSu里 return y 的位置在 for 外,为什么可以返回y的值?for循环结束之后不是在内存中把变量释放了
吗?
问题2:读取数组中最值的时候,有必要建立新的函数吗?如上
搜索更多相关主题的帖子: 编写 函数 return int for 
2017-10-28 17:14
kingpc520
Rank: 3Rank: 3
等 级:论坛游侠
威 望:7
帖 子:43
专家分:178
注 册:2017-9-16
收藏
得分:7 
可以return任何值
没必要
2017-10-29 14:05
流氓兔1号
Rank: 4
等 级:贵宾
威 望:10
帖 子:78
专家分:152
注 册:2017-6-10
收藏
得分:7 
也是新手,有不妥的地方还请谅解,回复如下:1.你的变量y是在函数体中定义的,所以并不是for循环以后y被释放,而是函数体执行完毕以后才被释放,所以可以返回y的值。
public class Suzu
{
  public static void main(String[]args)
  {
    int[] suzu=new int[]{1,33,44,55,66,77};
    int y=hanSu(suzu);
   
  }
  public static int hanSu(int []suzu)
  {
    int y=suzu[0];//y定义在for循环外
    for(int x=1;x<suzu.length;x++)
    {
      if(suzu[x]>y)
           y=suzu[x];
     }
      return y;
     
   }
  
}
2.不需要的
2017-11-04 20:26
林月儿
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:湖南
等 级:版主
威 望:138
帖 子:2277
专家分:10647
注 册:2015-3-19
收藏
得分:7 
也是新手,
问题1:在hanSu里 return y 的位置在 for 外,为什么可以返回y的值?for循环结束之后不是在内存中把变量释放了
吗?
答:y和for循环体同层而不是在其内部,循环过程中y值可能被刷新。
但没有退出和异常的情况下,不会提前退出,也就有机会执行到返回y。

问题2:读取数组中最值的时候,有必要建立新的函数吗?如上
答:没必要,最值的获取,过程上可以在主方法内实现,方式上可以使用排序再取边界值。
方式的变更如果复杂类型的数组元素,可以定义比较规则。

剑栈风樯各苦辛,别时冰雪到时春
2017-11-05 00:04
快速回复:关于编写函数里 return 的问题,本人菜鸟一枚
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016777 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved