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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王延龙 中级黑马   /  2013-7-5 15:32  /  1822 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package cn.practice;

public class VarableParameter {

        /**
         * @param args
         */
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println(add(2,3));
                System.out.println(add(2,3,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;
        }

}


//报错
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
        at cn.practice.VarableParameter.add(VarableParameter.java:19)
        at cn.practice.VarableParameter.main(VarableParameter.java:10)


//自己第一次用Eclipse 对于调试和报错提示不太懂

6 个回复

倒序浏览
改成以下就可以了。错误一:sum初始值应该是x不然你的x就加不进去了。错误二: i <= args.length循环条件应该是i<args.length 可变参数长度是2 角标只能取到1,
int sum = x;
                for(int i = 0; i < args.length; i++)
                {
                        
                        sum += args[i];
        }
        return sum;
回复 使用道具 举报
你的这个异常叫做数组角标越界异常,应该改为for(int i = 0; i < args.length; i++)。你也可以在网上找一些关于eclipse初学者的经验的博客看一看,这样的话对你的学习有很大的帮助。。
回复 使用道具 举报
王靖远 发表于 2013-7-5 16:25
改成以下就可以了。错误一:sum初始值应该是x不然你的x就加不进去了。错误二: i  ...

谢了,数组越界,多谢指正
回复 使用道具 举报
704050a 发表于 2013-7-5 17:44
你的这个异常叫做数组角标越界异常,应该改为for(int i = 0; i < args.length; i++)。你也可以在网上找一些 ...

谢了,错误原因找到了
回复 使用道具 举报
是数组下表越界,把 for(int i = 0; i < =args.length; i++)该为: for(int i = 0; i < args.length; i++)即可。
回复 使用道具 举报
哦,谢了,发现自己老是不仔细
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马