具有for和if的2D阵列编号网格

问题描述

我最近开始学习Java。我有一个任务,必须在其中打印带有特定值的数字网格。

此处提供代码

public static void main(String[] args) {
  int array[][] = {{1,2,3,5,7},{10,11,12,14,16},{19,20,21,23,25},{28,29,30,32,34},{37,38,39,41,43},{46,47,48,50,52}};

  for (int i = 0; i < array.length; i++){
      for (int j = 0; j < array[i].length; j++) {
          System.out.print(array[i][j] + " ");
      }
      System.out.println("");
  }


}

}

现在它可以很好地工作了,但是理想情况下,我只能声明第一行的值,并使用带if语句的for循环来完成同一件事,但是我很难为此找到代码

解决方法

一列中两个元素之间的差为9:super().__init__,因此代码可以修改为:

column_names = ['column1','column2'] 
# Want to make query below work automatically
# if I add another column name to `column_names`
sql_cmd = ("""
        UPDATE table1
        SET 
        table1.column1 = table2.column1,table1.column2 = table2.column2
        FROM table2
        WHERE table1.id = table2.id""")

输出:

a[i][j] = a[i-1][j] + 9

更新

生成从1开始的序列会更有趣。 在行内,两个相邻元素之间的差异会像public static void main(String args[]) { int array[][] = new int[6][5]; // initialize the first row array[0] = new int[] {1,2,3,5,7}; // print the first row System.out.println(Arrays.toString(array[0])); for (int i = 1; i < array.length; i++) { // populate current row incrementing each element by 9 for (int j = 0; j < array[i].length; j++) { array[i][j] = array[i - 1][j] + 9; } System.out.println(Arrays.toString(array[i])); } } 一样变化,[1,7] [10,11,12,14,16] [19,20,21,23,25] [28,29,30,32,34] [37,38,39,41,43] [46,47,48,50,52] 是上一行的最后一个元素与下一行的第一个元素之间的差异。

1,1,3