沉默的艺术家 发表于 2021-5-3 13:01:56

数组下标异常

package day4;

import java.util.Random;


import java.util.Random;

public class Num {
    public static void main(String[] args) {
      Random num = new Random();
      int[] a = new int;
      int s,i = 0;
      while (i < a.length){
            int b = num.nextInt(100);
            for(s = 0; s <= i; s++){
                if(b == a){
                  break;
                }else if(s == i){
                  a = b;
                }
            }
            i++;//i++在这里没有问题
      }
      for(i = 0; i < a.length; i++){
            System.out.println(a);
      }
    }
}

import java.util.Random;

public class Num {
    public static void main(String[] args) {
      Random num = new Random();
      int[] a = new int;
      int s,i = 0;
      while (i < a.length){
            int b = num.nextInt(100);
            for(s = 0; s <= i; s++){
                if(b == a){
                  break;
                }else if(s == i){
                  a = b;
                        i++;//i++在这里有问题,数组下标异常;
                }
            }
            
      }
      for(i = 0; i < a.length; i++){
            System.out.println(a);
      }
    }
}

肖-肖 发表于 2021-5-3 13:32:07

因为你第一个是for循环完了i+一次
而你第二个程序是每for循环一次i加一次,当s==i时这里i++了->s<=i就还成立-》将会成为死循环
因为s和i都一直在增1嘛-》所以以后也是会相等的-》所以当超过了a数组的最大下标的时候就会报数组下标异常了{:10_324:}
纯理论分析 应该是
页: [1]
查看完整版本: 数组下标异常