Java,绘制e十字架

时间:2013-07-02 10:14:58

标签: java arrays

我正在尝试编写一个在JAVA中绘制交叉的方法。 (见照片的例子)。

以下是示例:

Example

几个问题:

  • 如何通过参数为数组提供尺寸?似乎Eclipse需要一个数字而不是数组维度的变量。我认为可以给方法一个参数,数组的尺寸应该有多大。

  • 不知道如何告诉循环哪个数组位置应该是X而哪个不是。

  • 到目前为止,这是我的代码构思...它实际上不应该做什么:)我用“1”而不是“X”,所以我可以使用int数组。

    public void drawCross(int number){     int i,j;     int array [] [] = new int [40] [40];

    for(j=1;j<=number;j++){
        for(i=1;i<=number;i++){
            if(array[i]==array[j]){
            array[i][j]=1;
            System.out.print(array[i][j]+" ");
            }
        }
        System.out.print("\n");
    }
    

    }

提前谢谢你。 皮特

1 个答案:

答案 0 :(得分:2)

因为这似乎不是功课,解决方案

int[][] array = new int[number][number];

for (int i = 0; i < number; i++){
    for (int j = 0; j < number; j++){
        if (i == j || i == number - 1 - j) {
            array[i][j] = 1;
        }
        System.out.print(array[i][j] + " ");
    }
    System.out.print("\n");
}
  1. int[][] a是传统方式。 int a[][]是C程序员的语法糖。
  2. 在数学i中通常是行,j是列,因此切换了for循环。
  3. 数组从0索引。
  4. 条件应该说是一个是否在两个对角线中的一个上,所以只关注指数i和j。
  5. ||是OR,&&是AND(你还不知道)。
  6. 如您所见,不需要矩阵array
  7. 所以:

    boolean isOnDiagonal = i == j || i == number - 1 - j;
    System.out.print(isOnDiagonal ? "X " : ". "); // if-then-else operator.