黑马程序员技术交流社区
标题:
为什么for循环的i(j)要小于arr.length-1而不是arr.length?
[打印本页]
作者:
不羁的风1230
时间:
2014-5-11 21:57
标题:
为什么for循环的i(j)要小于arr.length-1而不是arr.length?
class Day06_06 {
public static void main(String[] args) {
int arr[][]={{1,2,3,4},{2,3,4,5},{4,5,6,7}};
arr(arr);
}
/*
求二维数组的最大值;
无需返回值;
定义一个二维数组;
*/
public static void arr(int[][] arr){
int i=0;
int j=0;
for (i=0;i<arr.length-1;i++ ) {
for ( j=0 ;j<arr[i].length-1 ;j++) {
if(arr[0][0]<arr[i][j])
{
arr[0][0]=arr[i][j];
}
}
}System.out.println("i="+i+" j="+j+" max="+arr[i][j]);
}
}
作者:
谢振宣
时间:
2014-5-11 22:33
arr.length表示数组arr的长度,而数组的角标是从0开始的,arr.length-1就是该数组的最后一个角标。
对数组的遍历不可以超出该数组的范围,否则会抛出数组角标越界异常。
作者:
姜蕾蕾
时间:
2014-5-12 00:20
数组下标从0开始的啊,基础的不能再基础了,多学学视频吧……
作者:
李小新H
时间:
2014-5-12 07:46
因为数组的角标是从零开始的!所以要减一!
作者:
最后的希冀
时间:
2014-5-12 08:04
额,同学,你的代码有问题,当遍历的上限为length-1时,应该用"<=",而如果要用"<"的时候,则直接写arr.length即可。参考代码
public class ArrayDemo {
public static void main(String[] args) {
int [][] arr = {{1,2,3},{4,5,6},{7,8,9}};
int max = getMax(arr);
System.out.println(max);
}
private static int getMax(int[][] arr) {
int max =arr[0][0];
for(int i = 0 ; i<arr.length ;i++) {
for(int j = 0 ; j<arr[i].length ; j++) {
if(arr[i][j] > max) {
max = arr[i][j];
}
}
}
return max;
}
}
复制代码
作者:
yemenglin
时间:
2014-5-12 09:31
基础很重要
作者:
黑马—张帅
时间:
2014-5-12 10:18
数组角标从0开始啊,减一就是最后一个
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2