扫描仪二维阵列(n x n)

时间:2018-04-30 13:15:27

标签: java arrays for-loop java.util.scanner

import java.util.Scanner;
class Test1 {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int[][] num = new int[n][n];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < 0; j++)
            if (i == j)
                num[i][j] = 1;
            else
                num[i][j] = 0;

    for (int[] a : num) {
        for (int b : a)
            System.out.print(b + " ");
        System.out.println();
    }
}

}

我想做 1 0 0 0 1 0 0 0 1 但我的答案就像是 0 0 0 0 0 0 0 0 0

2 个答案:

答案 0 :(得分:0)

看起来你的代码正在使用j作为变量的内循环。您初始化j = 0,然后如果j&lt; 0它将执行。但是,0 <0。 0是假的,所以它永远不会通过内循环迭代。尝试将该行更改为 for (int j = 0; j < n; j++)我希望您能得到您想要的结果。

答案 1 :(得分:0)

您需要遍历二维数组中的所有元素,而不仅仅是第 0 个元素。请参阅修改后的 for 循环。

import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int n = scan.nextInt();
    int[][] num = new int[n][n];
    for (int i = 0; i < n; i++)
        for (int j = 0; j < n; j++)
            if (i == j)
                num[i][j] = 1;
            else
                num[i][j] = 0;

    for (int[] a : num) {
        for (int b : a)
            System.out.print(b + " ");
        System.out.println();
    }
}
}