黑马程序员技术交流社区

标题: 增强for循环累加中的疑问,求解释 [打印本页]

作者: 山鹰    时间: 2013-5-25 07:51
标题: 增强for循环累加中的疑问,求解释
本帖最后由 山鹰 于 2013-5-25 10:15 编辑

sum =0 和 sum = x输出结果不同,怎么理解?从累加的过程解释下
public class Demo {

        public static void main(String[] args) {
               
                System.out.println(add(2,3));
        System.out.println(add(2,3,5));

        }

        public static int add(int x,int...args){
                    int sum = 0;//sum =0 和 sum = x输出结果不同,怎么理解
                for(int i = 0; i < args.length; i++ ){
                        sum+= args;
                }
/*
                    //增强for循环的格式
                    for(int arg : args){
                            sum+= arg;
            }
*/                             return sum;        
        }
}

作者: 花开花落总相似    时间: 2013-5-25 08:04
class Demo1 {
        public static void main(String[] args) {
               
                System.out.println(add(2,3));
        //System.out.println(add(2,3,5));
        }
        public static int add(int x,int...args){  //  这里  int x 是不属于 args集合的  你可以打印一下args集合的长度试一下你就知道了
                    int sum = 0;//sum =0 和 sum = x输出结果不同,怎么理解   这里必须不一样sum = 0 这里你是想要获取args 0的位置的元素的吧
                    int a = args [0] ;                      // int  sum =  args[0];
                     int b = x;  
                     System.out.println(a);  //这里输出2
                     System.out.println(b);   //这里输出3                     
                for(int i = 0; i < args.length; i++ ){
                        sum+= args[i];
                }
/*
                    //增强for循环的格式
                    for(int arg : args){
                            sum+= arg;
            }
*/                             return sum;        
        }
}


作者: chensc    时间: 2013-5-25 08:11
学习学习!
作者: clp    时间: 2013-5-25 08:13
sum=0这样定义不恰当

捕获.JPG (72.57 KB, 下载次数: 0)

捕获.JPG

作者: 赵利斌    时间: 2013-5-25 09:09
                                  add(2,3)                                                      add(2,3,5)  
sum=0              sum=2;>>>最终sum=2+3                       sum=2;sum=2+3;  最终sum=2+3+5
sum=x              sum=2+2;>>>最终sum=2+2+3               sum=2+2;sum=2+2+3;  最终sum=2+2+3+5

调用同一个函数:当sum=x时,sum的值比sum=0的sum值大2,这个2正好是x的值。
作者: 黄炳期    时间: 2013-5-25 09:19
累加求和的时候,一般的求和变量初始化为0,这样才能准确的计算出相应的正确结果,即sum=arg[i],
你现在引用了局部变量x,sum = x,那么sum最后的值应该是sum= x+arg[i];
所以,除非x=0.否则这两个语句会导致不同的结果。
希望能帮到你。
作者: 袁梦希    时间: 2013-5-25 12:09
黄炳期 发表于 2013-5-25 09:19
累加求和的时候,一般的求和变量初始化为0,这样才能准确的计算出相应的正确结果,即sum=arg,
你现在引用了 ...

以后记得  大于24小时没给分的帖子可以在加分帖  如果不是大于24小时的以后不加分了
作者: 黄炳期    时间: 2013-5-25 12:50
袁梦希 发表于 2013-5-25 12:09
以后记得  大于24小时没给分的帖子可以在加分帖  如果不是大于24小时的以后不加分了 ...

好的好的!记住了




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