下面程序执行完了又错误public class Study{
public static void main(String args[]){
int[] num = {15,56,156,213,32,21,5};
for(int i = 0; i <= num.length; i ++){
System.out.printf("num[%d] = %d\n", i , num[i]);
}
}
}错误内容是这样的
num[0] = 15
num[1] = 56
num[2] = 156
num[3] = 213
num[4] = 32
num[5] = 21
num[6] = 5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at study.Study.main(Study.java:23)
请高手指教。
public static void main(String args[]){
int[] num = {15,56,156,213,32,21,5};
for(int i = 0; i <= num.length; i ++){
System.out.printf("num[%d] = %d\n", i , num[i]);
}
}
}错误内容是这样的
num[0] = 15
num[1] = 56
num[2] = 156
num[3] = 213
num[4] = 32
num[5] = 21
num[6] = 5
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at study.Study.main(Study.java:23)
请高手指教。
记得要把一些常用的异常记住!
i的值不可能等于数组的长度,数组是从0开始的,所以i能取到num.length-1
public static void main(String args[]){int[] num = {15,56,156,213,32,21,5};
//for(int i = 0; i <= num.length; i ++){
//粗心
for(int i = 0; i < num.length; i ++){System.out.printf("num[%d] = %d\n", i , num[i]);
}
}
}
一般在循环遍历Map时,Key和Value,或者,Valu本身是List时,会让人糊涂。
2.循环的开始位置。
有些时候,循环不能从0开始。
3.循环的结束位置。
就像楼主失误的地方,没有在预期的结束位置,进行结束。
(2和3可以统称为 边界问题)
4.循环的趋向。
也就是说,每一次循环,都要趋向结束条件。与边界问题不同,趋向指明了循环是能够结束的。
循环没有向结束条件趋近,很可能造成死循环。以上都为本人的经验,写出来,大家参考参考。呵呵。
for(int i = 0; i < num.length; i ++){
System.out.printf("num[%d] = %d\n", i , num[i]);
}
}
太低级了
所以出错误
没有num[7]
System.out.printf();是C里的啊?
java面也能用?C里面应该也不是这么调用的吧,
printf()在C里面应该在<stdio>里面的用System.out也掉不出来吧.....