黑马程序员技术交流社区
标题:
java里数组问题
[打印本页]
作者:
伍仪华
时间:
2011-7-29 18:29
标题:
java里数组问题
请输出0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
我变得程序如下,编译通过了,就是运行通不过,请告诉看看什么原因
class shuzu1
{
public static void main(String args[])
{
int a[][]=new int[4][4];
int i,j;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
a
[j]=i+j;
}
System.out.println(a
[j]);
}
System.out.println("\n");
}
}问题补充:
运行出现这个 Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 4
at shuzu1.main(shuzu1.java:13)
作者:
匿名
时间:
2011-7-29 18:37
给你稍微修改了下 运行通过[code]package com.itcast.heima;
public class Test2
{
public static void main(String[] agrs)
{
int a[][]=new int[4][4];
int i,j = 0;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
a[i][j]=i+j;
System.out.print(a[i][j]);
}
System.out.println("\n");
}
}
}[/code]
作者:
詹季春
时间:
2011-7-29 18:42
[code=java]java.lang.ArrayIndexOutOfBoundsException://非法索引访问数组时抛出的异常[/code]int[][] a是一个二维数组
a
是一个二维数组,里面存储的int[] 类型的一维数组
现在可以来看你的代码里面的这个代码块[code=java]for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
a[j]=i+j;
}
System.out.println(a[j]);
} [/code]其中第三行,循环的四遍结果分别为:a[0] = 0 ; a[1] = 1 ; a[2] = 2 ; a[3] = 3 ;
这里就和我们一开始说的a
是一个二维数组,里面存储的int[] 类型的一维数组,int[]是一个Object对象 ,而上面程序里面存的是一个基本类型的变量,结果你懂的
我觉得你应该改成这样试试[code=java]for(i=0;i<4;i++) {
for(j=0;j<4;j++) {
a
[j]=i+j;
}
System.out.println(a
[j]);
} [/code]我的电脑上没有运行环境,应该是没错的
[
本帖最后由 詹季春 于 2011-07-29 18:46 编辑
]
作者:
匿名
时间:
2011-7-29 18:55
for(j=0;j<4;j++)
{
a[j]=i+j;
}
System.out.println(a[j]);
//数组越界。
当j增加到4时,就会退出for循环,接着你输出a[j],因为这时j已经是4了,所以越界。
另外a[j]=i+j;这行也不对
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2