黑马程序员技术交流社区
标题:
求教函数返回值问题
[打印本页]
作者:
胡文彬
时间:
2014-3-11 16:19
标题:
求教函数返回值问题
定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1) 实现输出数组中元素为奇数的数据。
class Test
{
public static void main(String [] args)
{
int[] arr = new int[] {45,23, 68, 54, 77 };
int[]c=trans(arr);
// System.out.println(c);
}
public static int [] trans(int [] arr)
{
for (int i=0;i<arr.length ;i++ )
{
if (arr%2==1)
{
System.out.print(arr+" ");
}
}
return arr;
}
}
我想问为什么输出总是带着内存中的地址?
作者:
e.c
时间:
2014-3-11 16:27
System.out.print(arr[i] + ""); 你忘记写角标了。。。。
作者:
透过生活
时间:
2014-3-11 16:28
for (int i=0;i<arr.length ;i++ )
{
if (arr%2==1)
{
System.out.print(arr+" ");
}
}
因为你这里if()比较的是引用变量arr,而不是arr[i]里面的值。
而且你输出的也是引用不是值。
作者:
syw02014
时间:
2014-3-11 16:31
本帖最后由 syw02014 于 2014-3-11 16:36 编辑
写的时候要注意哈,你错的地方已用红色标出:
public static int [] trans(int [] arr)
{
for (int i=0;i<arr.length ;i++ )
if (
arr
%2==1)
System.out.print(
arr
+" ");
return arr;
}
/*
定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1) 实现输出数组中元素为奇数的数据。
*/
class Test
{
public static void main(String [] args)
{
int[] arr = new int[] {45,23, 68, 54, 77 };
int[]c=trans(arr);
// System.out.println(c);
}
public static int [] trans(int [] arr)
{
for (int i=0;i<arr.length ;i++ )
if (arr[i]%2==1)
System.out.print(arr[i]+" ");
return arr;
}
}
复制代码
程序输出结果:45 23 77
其实你的函数已经具备输出功能,程序可改为:
/*
定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1) 实现输出数组中元素为奇数的数据。
*/
class Test
{
public static void main(String [] args)
{
int[] arr = new int[] {45,23, 68, 54, 77 };
trans(arr);
}
public static void trans(int [] arr)
{
for (int i=0;i<arr.length ;i++ )
if (arr[i]%2==1)
System.out.print(arr[i]+" ");
}
}
复制代码
程序输出结果:45 23 77
作者:
方青木
时间:
2014-3-11 16:41
定义一个数组 例如:int[] arr = new int[] {45,23, 68, 54, 77 },完成以下功能
(1) 实现输出数组中元素为奇数的数据。
class Test
{
public static void main(String [] args)
{
int[] arr = new int[] {45,23, 68, 54, 77 };
trans(arr);
}
public static void trans(int [] arr)
{
for (int i=0;i<arr.length ;i++ )
{
if (arr[i]%2==1)
System.out.print(arr[i]+"\t");
}
}
}
首先:根据问题的功能,此处只需打印数组中是奇数的元素,所以在定义方法时不需要有返回值。
其次:数组中某个元素的调用时ArrayName[index]
作者:
橡皮-leo
时间:
2014-3-11 21:18
首先你的需求是输出数组,而不是要得到返回值你的方法应该是void类型方法应为 public static void trans(int [] arr),其次要输出的是数组中的数据所以 输出语句应该改为System.out.print(arr[i]+" ");
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2