黑马程序员技术交流社区
标题:
缺少返回值
[打印本页]
作者:
黄长利
时间:
2012-3-28 08:51
标题:
缺少返回值
在函数的返回值问题有一点疑惑,代码如下:
class ArrayFind
{
public static int getIndex(char[] arr, char a)throws IllegalArgumentException
{
if(arr==null)
throw new IllegalArgumentException("数组为空值");
for(int x=0; x<arr.length; x++)
{
if(arr[x]==a)
return x;
return -1;
}
}
public static void main(String[] args)
{
char[] arr = {'A','B','C','D'};
System.out.println(getIndex(arr,'A'));
}
}
复制代码
其中代码第十一行应该写在外边的,我错写在了里边,但是也算是有一个返回值语句呀,为什么我编译的时候
确实以下结果呢?
选择排序.jpg
(5.12 KB, 下载次数: 82)
下载附件
2012-3-28 08:50 上传
作者:
曹魁
时间:
2012-3-28 08:57
本帖最后由 曹魁 于 2012-3-28 08:59 编辑
把第11行的return -1,挪到12行就可以了!
class ArrayFind
{
public static int getIndex(char[] arr, char a)throws IllegalArgumentException
{
if(arr==null)
throw new IllegalArgumentException("数组为空值");
for(int x=0; x<arr.length; x++)
{
if(arr[x]==a)
return x;
}
return -1;
}
public static void main(String[] args)
{
char[] arr = {'A','B','C','D'};
System.out.println(getIndex(arr,'A'));
}
}
作者:
izwj
时间:
2012-3-28 09:03
函数上定义了返回值类型int,最后一定要写上return,这个return要
显式
的放到函数的最后一行,
而不能仅仅放到内部的if,for等其他代码块中。
作者:
和心愿
时间:
2012-3-28 09:09
return -1;
执行不到,应该放到下面那个循环体的外边
作者:
孙地豪
时间:
2012-3-28 09:15
假如 arr 为空,for循环int x=0; x<arr.length 就不满足 条件, for 循环就不往下执行, 就没有返回值。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2