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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 路国强 中级黑马   /  2013-12-30 12:21  /  827 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class VarableParameter {
       
        public static void main(String[] args) {
                System.out.println(add(2,3));
                //System.out.println(add(1,5));
        }
       
        //定义
        public static int add(int x,int... args){
                int sum = 0;
                for(int i=0;i<args.length;i++){
                        sum += args[i];
                }
                return sum;
        }
}
我的目的是算出2和3的和,但是输出结果总是错误的,求解为什么

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 淡定

查看全部评分

2 个回复

倒序浏览
public static int add(int x,int... args){
                int sum = 0;
                for(int i=0;i<args.length;i++){
                        sum += args[i];
                }
                return sum;
        }

System.out.println(add(2,3));

x=2,args里面是3.
目的是算出2和3的和
sum += args[i];
x哪里去了?

return sum;
改成这样:
return sum+x;

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 感谢您为论坛的付出与对同学的耐心解答。.

查看全部评分

回复 使用道具 举报
可变参数传进来的是一个数组,你可以用下标去访问
你是想计算参数之和吧?我给你修改了下
public static void main(String[] args) {
                System.out.println(add(2,3));
                System.out.println(add(2,3,4));
                System.out.println(add(2,3,4,5));
        }

        /**
         * 计算参数之和
         * @param x
         * @param args
         * @return
         */
        public static int add(int x, int... args) {
                //初始化结果为x
                int sum = x;
                //遍历参数,累加进sum
                for (int i = 0; i < args.length; i++) {
                        sum += args[i];
                }
                return sum;
        }

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分+1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马