为了账号安全,请及时绑定邮箱和手机立即绑定

为什么使用while循环会抛出数组越界异常

        int i = str.length();
       while(i>=0){
               if(i<=0) {
                       System.out.println("i ----- " + i);
               }
               else {
                   i-=3;
                   str.insert(i, ',');
               }

}//抛出ArrayIndexOutOfBoundsException



正在回答

3 回答

int len = str.length();

        while(len>=3){

            len = len - 3;

            str.insert(len,",");

        }


0 回复 有任何疑惑可以回复我~
int i = str.length();
while (i >= 0) {
    if (i >= 3) {
        i -= 3;
        str.insert(i, ',');
    } else {
        System.out.println(str);
        break;
    }
}

改下

0 回复 有任何疑惑可以回复我~

当while判断的i比3小时在判断语句的else内  :  语句(i-=3)则会出现负值,此时,语句   str.insert(i, ',')  找不到对应得数组下标,系统出现数组越界异常提示。

改正:把第3行的代码  if(i<=0)   改为  if(i<=3)即可解决越界问题。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么使用while循环会抛出数组越界异常

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信