Java 用for循环填充二维数组
我正在尝试从8x8创建一个二维数组,该数组将由for循环填充。该表必须以数字32开头,并且后面的每个数字应减少1 这是我试图解决的问题:Java 用for循环填充二维数组,java,arrays,for-loop,Java,Arrays,For Loop,我正在尝试从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
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]);
}
}
}
}
Inzend2中的公共类{
公共静态void main(字符串[]args){
//TODO自动生成的方法存根
int[]blastTable=新int[8][8];
对于(int i=32;i
我做错了什么?(当我运行程序时,不会打印任何内容)类似的操作会起作用。您有一个数组(长度为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]);
}
}
}
一些考虑:
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--;
}
}
int count=32;//还是像我之前建议的那样
int[]blastTable=新int[8][8];
对于(int i=0;i
您尝试的方式不正确。因为行大小是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]);
}
}
}
publicstaticvoidmain(字符串[]args){
int[]blastTable=新int[8][8];
对于(int i=0;i
首先,您的表未初始化。
其次,表的大小是8而不是32
第一个循环将遍历表的行,第二个循环将遍历列(因为我们讨论的是二维表)第一个循环应以i=blastTable.length开头
第二个循环应该以j=blastTable开始。长度首先:一个8x8数组有64个条目 其次:要打印该值,必须首先分配该值 第三:使用计数器填充数组。您的迭代不在数组的边界内。所以你从blastTable[32][32]开始,但这不是更小的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
for(int i=32;i
一个正确的方法是:
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]);
}
}
int counter=32;//或64
对于(int i=0;i
此代码将把32到-31之间的所有数字填入数组(或64到1)并打印出来。您需要增加行和列索引,同时减少起始值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]);
}
}
}
publicstaticvoidinitializetable(int[]blastTable,int startValue){
对于(int i=0;i
谢谢大家和我一起思考!我已经修复了它,这是我的最终结果:
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");
}
}
publicstaticvoidmain(字符串[]args){
//TODO自动生成的方法存根
int[]blastTable=新int[8][8];
int计数器=32;
对于(int i=0;i
外部for循环从不执行,因为i
被初始化为32,即>blastTable.length。2D数组的长度为8。谢谢!这正是我要找的!谢谢你的帮助,最后一个数字是-31是正确的。我刚开始学习java,我很困惑,因为这个数字必须递减但是你没问题,我首先必须使用循环中的++来填充数组8 x 8次。