各位师兄,小弟在编的一个简单的小程序出现以下情况,令小弟百思不得其解,请各位帮助
public class TestJ
{
public static void main(String[] args)
{
int[][] a={
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
};
for(int i=0;i<a.length;i++)
for(int j=0;j<a[i].length;j++)
if(a[i][j]==10)
a[i][j]=0;
System.out.println(a);
}
}
结果: [[I@@198dfaf
如果改为:System.out.println(a[i][j])
则出现以下错误:
TestJ.java:15: cannot resolve symbol
symbol : variable i
location: class TestJ
System.out.println(a[i][j]);
^
TestJ.java:15: cannot resolve symbol
symbol : variable j
location: class TestJ
System.out.println(a[i][j]);
^
2 errors
----------------解决方案--------------------------------------------------------
你的for没有加大括号,加大括号就没事了
因为不加大括号,它的范围只能管到下面一句,所以,System.out就不在它们的范围了
----------------解决方案--------------------------------------------------------
你的for没有加大括号,加大括号就没事了
因为不加大括号,它的范围只能管到下面一句,所以,System.out就不在它们的范围了
我觉得这样还不行,应把输出语句改成 System.out.println(a [ i ][ j ]);
java中对数组的输出不能直接使用数组名,否则返回的是数组的起始地址。
----------------解决方案--------------------------------------------------------
你要的输出结果是什么样的?我把你的程序改了下,不知道是不是你想要的输出结果。
public class TestJ
{
public static void main(String[] args)
{
int[][] a={
{1,2,3,4,5},
{6,7,8,9,10},
{11,12,13,14,15},
};
for(int i=0;i<a.length;i++){
for(int j=0;j<a[i].length;j++) {
if(a[i][j]==10)
a[i][j]=0;
System.out.println(a[i][j]);
}
}
}
}
输出结果:
1
2
3
4
5
6
7
8
9
0
11
12
13
14
15
Press any key to continue...
----------------解决方案--------------------------------------------------------
我觉得这样还不行,应把输出语句改成 System.out.println(a [ i ][ j ]);
java中对数组的输出不能直接使用数组名,否则返回的是数组的起始地址。
就是这样意思
----------------解决方案--------------------------------------------------------
谢谢各位,我明白了
----------------解决方案--------------------------------------------------------