黑马程序员技术交流社区

标题: 求助!!关于数组求和,在主函数中调用的问题 [打印本页]

作者: 泼孩    时间: 2011-11-15 10:55
标题: 求助!!关于数组求和,在主函数中调用的问题
本帖最后由 泼孩 于 2011-11-15 15:46 编辑

定义个功能,求出给定数组的元素的和,在主函数中如何输出?
下面的代码谁给看看?编译提示(ArrayDemo2.java:18: 错误: 缺少返回语句
        })
        public static void main(String [] args)
        {
               
                int [] arr={1,2,2};
                Arraysum(arr);
        }
public static int Arraysum(int []arr)
        {
                        int sum=0;
                for(int x=0;x<arr.length;x++)
                {
                        sum+=arr[x];
                    System.out.println("Arraysum="+sum);
                        return sum;
                }
        }
作者: 强子    时间: 2011-11-15 11:00
将return 语句写在循环外面
因为循环需要判断条件 循环内的代码不一定会执行 编译器判定你这个返回值为int类型的方法存在没有返回值的情况  
作者: 阮金明    时间: 2011-11-15 11:01
    public static void main(String [] args)
        {
               
                int [] arr={1,2,2};
                Arraysum(arr);
        }
public static int Arraysum(int []arr)
        {
                        int sum=0;
                for(int x=0;x<arr.length;x++)
                {
                        sum+=arr[x];
                    System.out.println("Arraysum="+sum);
                        return sum;//这句放到大括号外面,即循环外面
                }
        }



作者: 泼孩    时间: 2011-11-15 11:06
强子 发表于 2011-11-15 11:00
将return 语句写在循环外面
因为循环需要判断条件 循环内的代码不一定会执行 编译器判定你这个返回值为int ...

对哦。忘了循环跟return两回事了。。谢谢了
作者: Francis-Yu    时间: 2011-11-15 11:12
你有System语句干嘛还要return呢?直接讲方法返回类型改为void,去掉return就ok!
作者: 高庆亮    时间: 2011-11-15 11:12
加油哦!
作者: 泼孩    时间: 2011-11-15 11:31
本帖最后由 泼孩 于 2011-11-15 11:32 编辑
Francis-Yu 发表于 2011-11-15 11:12
你有System语句干嘛还要return呢?直接讲方法返回类型改为void,去掉return就ok! ...


你看结果是神马类型的,是void吗?去掉return?看到编译提示了没
作者: 泼孩    时间: 2011-11-15 11:33
强子 发表于 2011-11-15 11:00
将return 语句写在循环外面
因为循环需要判断条件 循环内的代码不一定会执行 编译器判定你这个返回值为int ...

嗯,嗯解决了,thank you
作者: 咖啡    时间: 2011-11-15 15:16
跟这个是一样的public static int Arraysum(int[] arr){
                return null;
                        }   你把   public static void main(String [] args)
        {
               
                int [] arr={1,2,2};
                Arraysum(arr);
        }
public static int Arraysum(int []arr)
        {
                        int sum=0;
                for(int x=0;x<arr.length;x++)
                {
                        sum+=arr[x];
                    System.out.println("Arraysum="+sum);
                        return sum;//这句放到大括号外面,即循环外面
                }
        }

就对了
作者: 老罗    时间: 2011-11-15 16:44
不错,马上就改成以解决了。
作者: 泼孩    时间: 2011-11-15 16:45
老罗 发表于 2011-11-15 16:44
不错,马上就改成以解决了。

发现了,很给力
作者: 常文艺    时间: 2011-11-15 17:08
class A
{
public static void main(String [] args)
        {
               
                int [] arr={1,2,2};
                Arraysum(arr);
        }
public static void Arraysum(int []arr)
        {
                        int sum=0;
                for(int x=0;x<arr.length;x++)
                {
                        sum+=arr[x];
                  
                        
                } System.out.println("Arraysum="+sum);
        } }输出语句你放循环里那得输出多少次啊。这样就好了




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