int Site[][] = new int[N][N];
for(int[] i : Site)
for(int j:i)
Site[i][j]=1;
此代码显示一些错误。请更正代码。
答案 0 :(得分:6)
int Site[][] = new int[N][N];
for (int[] i : Site)
for (int j : i)
i[j] = 1;
Site的元素是int []类型,因此必须是第一个索引变量的类型,i。这给你一个int []的引用,所以索引到那个访问单个元素。
通过使用更有意义的out循环索引标识符,可以使代码更清晰:
int Site[][] = new int[N][N];
for (int[] siteRow : Site)
for (int i : siteRow)
siteRow[i] = 1;
答案 1 :(得分:1)
在使用上一个解决方案的问题中,我们遇到了另一个问题,例如
0 1 1
0 1 1
0 1 1
每次打印元素的值时,这是数组的第一个元素为零。 现在,解决问题的解决方案是使用控制语句,如
for(int[] row: B)
{
for(int j: row)
{
if(j==0)
System.out.print(" "+row[j]);
else
System.out.print(" "+j);
}
System.out.println();
}
这肯定会解决第一个元素为零的问题。
答案 2 :(得分:0)
如果您要使用for(int[] i : Site)
和for(int j:i)
,则应将元素称为j = 1
,而不是Site[i][j]=1;
,因为i
的类型为{ {1}}和int[]
获取其元素的值。
答案 3 :(得分:0)
您不能使用for-each循环来修改存储在数组中的值。为此使用常规for循环。
答案 4 :(得分:0)
我使用它来打印具有增强的for循环的2D数组的每个元素的位置:
int[][] grid = new int[3][3];
String divider = "------------------";
int y = 0;
for (int[] row : grid)
{
for (int dividers : row)
System.out.print(divider);
System.out.println();
int x = 0;
for (int columns : row)
{
row[columns] = y;
System.out.print("| (row: " + row[columns] + " col: " + x + ") ");
x++;
}
y++;
System.out.println("| ");
}
for (int[] lastDivider : grid)
System.out.print(divider);
答案 5 :(得分:-1)
int[][] twodim = new int[4][3];
for (int[] row : twodim) {
for (int j = 0; j < row.length; j++) {
row[j] = 1;
}
}
for (int[] row : twodim) {
for (int j : row) {
System.out.println(row[j]);
}
}