public class Tuxing
{
public static void main(String args[])
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++)
for(n=0;n<10;n++)
a[i][j]='*';
for(m=0;m<10;m++)
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[i][j]);
}}
这次没有过界了 但是程序还是不能运行
提示是这个:Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Tuxing.main(Tuxing.java:14)
i=10,j=10.这里搞错了。
a[10][10]的数组,index只能0到9,你应该改成a[m][n]或a[n][m].
public static void main(String args[])
{
char a[][]=new char[10][10];
for(int i=0; i<a.length; i++) {
for(int j=0; j<a[i].length; j++) {
a[i][j] = '*';
}
}
for(int i=0; i<a.length; i++) {
System.out.println();
for(int j=0; j<a[i].length; j++)
System.out.print(a[i][j]);
}
}
}
所以System.out.print(a[i][j]);报ArrayIndexOutOfBoundsException(数组超出下标)错。
和
System.out.print(a[i][j]);i 和 j 固定的10,这和a[i][j] 就代表 a[10][10],这肯定是越界的呀
public class Tuxing
{
public static void main(String args[])
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++){
for(n=0;n<10;n++)
a[m][n]='*';
}
for(m=0;m<10;m++){
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[m][n]);
}
}}我认为你的代码应该这样写才正确,数组中的下标是从0开始的,因为你的i和j的值都是10,所以运行时就会报数组越界错误。
{
public static void main(String args[])
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++){
for(n=0;n<10;n++)
a[m][n]='*';
}
for(m=0;m<10;m++){
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[m][n]);
}
}}
我认为你的代码应该这样写才正确,数组中的下标是从0开始的,因为你的i和j的值都是10,所以运行时就会报数组越界错误。
int i,j;
i=10;
j=10; a[i][j]='*';
你i j 都是10 a[10][10]当然报下标越界错咯
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++){
for(n=0;n<10;n++)
a[m][n]='*';
}
for(m=0;m<10;m++){
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[m][n]);
}
}这样就好了
int i,j;
i=10;
j=10;
char a[][]=new char[i][j];
System.out.print(a[i][j]);
肯定越界了啊
{
int i,j;
i=10;
j=10;
//int m=10; //用不到
//int n=10; //用不到
char a[][]=new char[i][j];
for( m=0;m <10;m++){ //m<10最好改为m<i,只是为了规范
for(n=0;n <10;n++) //n<10最好改为n<j,同理
a[m][n]='*';
}
for(m=0;m <10;m++){
System.out.println();
for(n=0;n <=m;n++)
System.out.print(a[m][n]);
}
}
{
public static void main(String args[])
{
int i,j;
i=10;
j=10;
int m=10;
int n=10;
char a[][]=new char[i][j];
for( m=0;m<10;m++)
for(n=0;n<10;n++)
a[i][j]='*';
for(m=0;m<10;m++)
System.out.println();
for(n=0;n<=m;n++)
System.out.print(a[i][j]);
}}
调试一下改改吧 。
你的程序for(m=0;m <10;m++)
System.out.println();
for(n=0;n <=m;n++)
System.out.print(a[i][j]);
应该是:for(m=0;m <10;m++) {
System.out.println();
for(n=0;n <=m;n++)
System.out.print(a[i][j]);
}
内层循环用到了外层循环的变量,而这个变量又是此变量所在的大括号内全局的。
你写的是两个循环,第一个循环结束之后,开始下面的循环,而此时变量m的值已经是10了,数组的下标是从0开始的,你定义的长度又只有十位,所以会报下标越界异常。
应该是System.out.print(a[m][n]);