A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 山鹰 中级黑马   /  2013-5-25 07:51  /  2111 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 山鹰 于 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;        
        }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

7 个回复

倒序浏览
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;        
        }
}

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 很给力!

查看全部评分

回复 使用道具 举报
学习学习!
回复 使用道具 举报
sum=0这样定义不恰当

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

捕获.JPG

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
                                  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的值。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1

查看全部评分

回复 使用道具 举报
累加求和的时候,一般的求和变量初始化为0,这样才能准确的计算出相应的正确结果,即sum=arg[i],
你现在引用了局部变量x,sum = x,那么sum最后的值应该是sum= x+arg[i];
所以,除非x=0.否则这两个语句会导致不同的结果。
希望能帮到你。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
黄炳期 发表于 2013-5-25 09:19
累加求和的时候,一般的求和变量初始化为0,这样才能准确的计算出相应的正确结果,即sum=arg,
你现在引用了 ...

以后记得  大于24小时没给分的帖子可以在加分帖  如果不是大于24小时的以后不加分了
回复 使用道具 举报
袁梦希 发表于 2013-5-25 12:09
以后记得  大于24小时没给分的帖子可以在加分帖  如果不是大于24小时的以后不加分了 ...

好的好的!记住了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马