黑马程序员技术交流社区

标题: 关于函数返回值调用 [打印本页]

作者: 乔攀    时间: 2012-11-27 22:23
标题: 关于函数返回值调用
本帖最后由 乔攀 于 2012-11-27 23:07 编辑

定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1)        实现输出数组中元素为奇数的数据。
class Demo
{
        public static void main(String [] args)
                {
                 int[] arr = new int[] {45,23, 68, 54, 77 };
                  int[]c=cha(arr);
                 // System.out.println(c);
                }

        public static int []  cha(int [] arr)
        {        
               
                for (int i=0;i<arr.length ;i++ )
                {
                        if (arr%2==1)
                        {

                        System.out.print(arr+" ");        
                        }
                }
        
                return arr;               
        }
}
为什么输出结果总是带着内存中的地址?

作者: 郝少普    时间: 2012-11-27 22:46
我跑了一下发现
System.out.println(c); 你打印了c,c 是你new 出来的地址,  所以出现的地址。。
我帮你改好了
  1. public class Demo {
  2.         public static void main(String[] args) {
  3.                 int[] arr = new int[] { 45, 23, 68, 54, 77 };
  4.                 cha(arr);
  5.                 //System.out.println(cha(arr) + " **");
  6.         }
  7.         public static int[] cha(int[] arr) {

  8.                 for (int i = 0; i < arr.length; i++) {
  9.                         if (arr[i] % 2 == 1) {
  10.                                 System.out.print(arr[i] + " ");
  11.                         }
  12.                 }
  13.                 return arr;
  14.         }
  15. }
复制代码

作者: 张海涛    时间: 2012-11-27 23:02
本帖最后由 张海涛 于 2012-11-27 23:05 编辑

如果你需要cha()这个函数返回的值你在主函数main里面直接调用就可以了,而你是把cha函数的返回值(是一个数组)赋值给数组类型的c,然后你打印了c
所以会将cha函数的值和c的类型一并返回给你!
class Demo
{
        public static void main(String[] args)
        {
                int[] arr = new int[] {45,23, 68, 54, 77 };
                //int[] c = cha(arr);
                //System.out.println(c);
                cha(arr);

        }

        public static int[] cha(int[] arr)
        {
                for (int i=0;i<arr.length ;i++ )
                {
                        if (arr%2==1)
                        {
                                System.out.print(arr+" ");
                        }
                }
                return arr;
        }
}

作者: 乔攀    时间: 2012-11-27 23:05
哦 明白了 谢谢两位!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2