一、数组越界

  1. java.lang.ArrayIndexOutOfBoundsException

在进行判断条件的时候,注意java当中的数组“尾巴”不要溢出,数组arr的合法错误范围是[0, arr.length-1]

  • 解决办法
  • ①debug看数组的尾巴部分输出情况【数组空间小的情况】
  • ②打印出遍历数组的索引值【通法】

回顾java初始化数组的方式:

  • 静态初始化:初始化时由程序员显式指定每个数组元素的初始值,有系统决定数组的长度

arrayName = new type[]{element1,element2,element3…}

  1. int[] intArr;
  2. intArr = new int[]{1,2,3,4,5,9};
  3. 或者
  4. String[] strArr = {"one","two","three"};
  • 动态初始化:初始化时由程序员指定数组的长度,由系统初始化每个数组元素的默认值

arrayName = new type[length];

  1. int[] price = new int[4];

二、printf;println;print

  • printf:遇到浮点型数值,继承C语言里面的使用,格式化输出(注意,参数顺序)
  • print:就是一般的标准输出,但是不换行
  • println:比print多的就是最后会换行
  1. int i = 4;
  2. double j = 5;
  3. System.out.print("用print输出i:"+ i);
  4. System.out.println( "用println输出i:"+ i);
  5. System.out.printf("i的值为%d,j的值为%f", i,j);
  1. print输出i:4println输出i:4
  2. i的值为4,j的值为5.000000
  • printf补充

%.2f的意思是输出两位小数点 java-数组越界和格式输出 - 图1