在Java中打印图案

问题描述 投票:-1回答:2

这是一个工作程序,下面的代码正在工作

使用嵌套的循环创建形状图案

    for (i = 1; i <= numOfshape / 2 + 1; i++) {

        for (j = i; j < numOfshape; j++) {
            System.out.print(" ");
        }

        for (k = 1; k < (i + numOfshape); k++) {
            System.out.print("x ");
        }
        System.out.println();
    }

    for (i = numOfshape/2; i >= 1; i--) {
        for (j = numOfshape; j > i; j--) {
            System.out.print(" ");
        }
        for (k = 1; k < (i + numOfshape); k++) {
            System.out.print("x ");
        }
        System.out.println();
    }
syntax
2个回答
1
投票

预期的输出总共有5行,因此前三行将在第一个Outer循环中,而后两行将在第二个Outer循环中。

下面是工作代码-

for (i = 1; i <= numOfshape / 2 + 1; i++) {

            for (j = i; j < numOfshape; j++) {
                System.out.print(" ");
            }

            for (k = 1; k < (i + numOfshape); k++) {
                System.out.print("x ");
            }
            System.out.println();
        }

        for (i = numOfshape/2; i >= 1; i--) {
            for (j = numOfshape; j > i; j--) {
                System.out.print(" ");
            }
            for (k = 1; k < (i + numOfshape); k++) {
                System.out.print("x ");
            }
            System.out.println();
        }

0
投票

对于所有偶数和奇数,六边形的行数等于输入numOfshape。下面的代码将起作用。

  int rows=numOfshape;
    if (numOfshape%2==0){
        rows--;
    }
    for (i = 1; i <= rows / 2+1 ; i++) {

        for (j = i; j < numOfshape; j++) {
            System.out.print(" ");
        }

        for (k = 1; k < (i + numOfshape); k++) {
            System.out.print("x ");
        }
        System.out.println();
    }

    for (i = numOfshape/2; i >= 1; i--) {
        for (j = numOfshape; j > i; j--) {
            System.out.print(" ");
        }
        for (k = 1; k < (i + numOfshape); k++) {
            System.out.print("x ");
        }
        System.out.println();
    }

或者如果行数不必等于输入if,则可以删除第一个numOfShape条件。

© www.soinside.com 2019 - 2024. All rights reserved.