首页 > 解决方案 > 在java中循环遍历3x3矩阵

问题描述

public class Test {
    private static int rows = 3;
    private static int col = 3;
    public static void main(String[] args) {
        Test t = new Test();
        t.stringClass5();
        System.out.println(t.stringClass5());
    }
    public String stringClass5() {
        String varString = "";      
        final String lineSEP = System.getProperty("line.separator");
        for (int i = 0; i < rows; ++i) {
            //System.out.println(i);
            varString += "+---".repeat(col) + "+" + lineSEP;
            for (int k = 0; k < col; ++k) {
                    varString += "| " + (i) + " ";                  
            }
            varString += "|"+ lineSEP;
        }
        varString += "+---".repeat(col) + "+";
        return varString;
    }
}

当我运行代码时,它只在 3x3 矩阵的第一行打印 0,在第二行打印 1,在第三行打印 2。我希望它能够从 0 打印到 8。任何帮助将不胜感激,谢谢。

标签: javafor-loopmatrix

解决方案


因为您正在打印 i (行计数器),所以您在第一个中得到 0,在第二个中得到 1。相反,您可以在子循环中使用单独的计数器递增它。

public class Test {
    private static int rows = 3;
    private static int col = 3;
    public static void main(String[] args) {
        Test t = new Test();
        t.stringClass5();
        System.out.println(t.stringClass5());
    }
    public String stringClass5() {
        String varString = "";
        int counter = 0;      
        final String lineSEP = System.getProperty("line.separator");
        for (int i = 0; i < rows; ++i) {
            //System.out.println(i);
            varString += "+---".repeat(col) + "+" + lineSEP;
            for (int k = 0; k < col; ++k) {
                    varString += "| " + counter + " ";
                    counter++;                  
            }
            varString += "|"+ lineSEP;
        }
        varString += "+---".repeat(col) + "+";
        return varString;
    }
}

推荐阅读