用for循环怎么输出这样的菱形啊

敲了几十行,定义的变量太多太麻烦了,后半部分还没写,感觉这样写超麻烦,

img

最标准的代码,尝试了一个多小时做出来的


public static void main(String[] args) {
    int totalRow = 7;
    for (int row = 0; row < totalRow; row++) {
        // 左边空格数
        int leftSpaceNum = Math.abs(totalRow / 2 - row);
        //每行中间最大值
        int colMid = totalRow / 2 - leftSpaceNum + 1;
        // 数字个数
        int number = totalRow-2*Math.abs(totalRow/2-row);
        for (int col = 0; col < totalRow; col++) {
            if (col < leftSpaceNum) {
                System.out.print("  ");
            }else if(col < number+leftSpaceNum) {
                System.out.print(colMid - Math.abs(totalRow/2-col) + " ");
            }else {
                break;
            }
        }
        System.out.println();
    }
}

img

就是这样用for循环去写的,虽然可能看起来麻烦,其实上半部分写出来,下半部分找到与上半部分规律就会容易很多了。

希望对题主有所帮助,可以的话,帮忙点个采纳!