我正在尝试从8x8制作一个二维数组,它将由for循环填充。该表必须以数字32开头,每个后续数字应减少1.
这是我尝试解决问题的方法:
public class Inzend2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] [] blastTable = new int [8] [8];
for(int i = 32; i < blastTable.length; i--) {
for(int j = i; j < blastTable.length; j--) {
System.out.println( blastTable[i][j]);
}
}
}
}
我做错了什么? (运行程序时没有打印)
答案 0 :(得分:1)
这样的东西会起作用。你有一个数组(长度为8)的数组(每个长度为8)。外部for循环遍历第一个数组,内部for循环遍历包含的数组。
请注意,您尚未使用任何值初始化数组。
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] [] blastTable = new int [8] [8];
for(int i = blastTable.length; i > 0; i--) {
for(int j = blastTable.length; j > 0; j--) {
System.out.println( blastTable[i][j]);
}
}
}
答案 1 :(得分:1)
你正在以错误的方式尝试。因为行大小是8而不是32.你的数组元素是未初始化的,每个元素的默认值都是0.试着打印元素的值:
public static void main(String[] args) {
int [] [] blastTable = new int [8] [8];
for(int i = 0; i < blastTable.length; i++) {
for(int j = 0; j < blastTable[i].length; j++) {
System.out.println( blastTable[i][j]);
}
}
}
答案 2 :(得分:0)
一些注意事项:
8x8是64,所以如果从32开始,你接受最后一个数字是-31,对吗?或者你想从64开始并且最后一个数字是1?
您可以在不使用第三个计数器的情况下解决它,但使用起来更简单,请尝试以下示例。
样品:
int count = 32; // or 64 as I proposed before
int[][] blastTable = new int[8][8];
for(int i = 0; i < blastTable.length; ++i) {
for(int j = 0; j < blastTable.length; ++j) {
blastTable[i][j] = count--;
}
}
答案 3 :(得分:0)
首先,您的表未初始化。
其次,表的大小是8而不是32
第一个循环将通过表格的行,第二个循环将通过列(因为我们正在谈论一个双层的桌子)
第一个循环应以i = blastTable.length
开头
第二个循环应以j = blastTable.length
答案 4 :(得分:0)
首先: 8x8阵列有64个条目。
其次:要打印该值,您必须先将其指定。
第三:使用计数器填充数组。您正在迭代不在数组的范围内。所以你从blastTable [32] [32]开始,但这是nocht较小8你的for循环中的条件是什么。
for(int i = 32; i < blastTable.length; i--) {
//means: set i = 32; as long as i < blastTable.lenght (8) proceed the loop;
// after each iteration decrease i by one
一种正确的方法是:
int counter = 32; //or 64
for(int i = 0; i < blastTable.length; i++) {
for(int j = 0; j < blastTable[i].length; j++) {
blastTable[i][j] = counter;
counter--;
System.out.println( blastTable[i][j]);
}
}
此代码将从32到-31的所有数字填充到您的数组(或64到1)并打印它们。
答案 5 :(得分:0)
您需要增加行和列索引,同时减少32的起始值。
public static void initializeTable(int[][] blastTable, int startValue) {
for (int i = 0; i < blastTable.length; i++) {
for (int j = 0; j < blastTable[i].length; j++) {
blastTable[i][j] = startValue--;
System.out.println( blastTable[i][j]);
}
}
}
答案 6 :(得分:0)
感谢您和我一起思考!我修好了,这是我的最终结果:
public static void main(String[] args) {
// TODO Auto-generated method stub
int [] [] blastTable = new int [8] [8];
int counter = 32;
for(int i = 0; i < blastTable.length; i++) {
for(int j = 0; j < blastTable[i].length; j++) {
blastTable[i][j] = counter;
counter--;
System.out.print(blastTable[i][j]+" ");
}
System.out.print("\n");
}
}