java 我该如何去掉图案间的两条线

hwazgwia  于 2023-01-29  发布在  Java
关注(0)|答案(2)|浏览(197)
static void k(){
    Scanner sc= new Scanner(System.in);
    System.out.println("no.of rows");
    int a = sc.nextInt();

    for(int row=a; row>=1; row--){

        for (int col=1; col <=row-1; col++){
            System.out.print(" * ");
       }
       System.out.println();
    }
    for(int row=1; row<=a; row++){

        for (int col=1; col <=row-1; col++){
            System.out.print(" * ");
        }
        System.out.println();
    }
}
*  *  *  *
 *  *  *
 *  *
 *

 *
 *  *
 *  *  *
 *  *  *  *

我试着用Java打印上面的模式,但是在模式之间多了两行,我不知道如何删除它们。

wvyml7n5

wvyml7n51#

您必须在System.out.println()调用中添加一些条件。
还有:

  • 使用适当的变量/方法名称,避免使用单字母名称
  • 您应该在0处进行索引;这更符合逻辑
public class Main {
    public static void main(String[] args) {
        printTriangles();
    }
    private static void printTriangles() {
        //Scanner sc = new Scanner(System.in);
        //System.out.print("Number of rows: ");
        int rows = 4; // sc.nextInt();
        for (int row = rows; row > 0; row--) {
            for (int col = 0; col < row; col++) {
                System.out.print(" * ");
           }
           if (row > 1) {
               System.out.println();
           }
        }
        for (int row = 0; row <= rows; row++) {
            for (int col = 0; col < row; col++) {
                System.out.print(" * ");
            }
            if (row < rows) {
               System.out.println();
           }
        }
    }
}

输出

其中输入= 4

*  *  *  * 
 *  *  * 
 *  * 
 * 
 * 
 *  * 
 *  *  * 
 *  *  *  *
2w2cym1i

2w2cym1i2#

试试这个,即没有-1的内部循环

for(int row=a; row>=1; row--){

    for (int col=1; col <=row; col++){
        System.out.print(" * ");
   }
   System.out.println();
}
for(int row=1; row<=a; row++){

    for (int col=1; col <=row; col++){
        System.out.print(" * ");
    }
       System.out.println();
}

相关问题