用Java打印星型

时间:2019-12-12 05:49:21

标签: java for-loop

# 
# # #
# # # # #
# # #
#

我用以下代码构建了上半部分

public void printPattern(int row) {
    int k=0;
    for(int i=1; i<=row; i++) {
        for(int j=1; j<=(row*2)-1; j++) {
            if(j<=i+k) {
                System.out.print("#");
            }
            else {
                System.out.print(" ");
            }
        }
        k++;
        System.out.println();
    }

但是我不知道如何仅使用2个for循环来构造下半部分

5 个答案:

答案 0 :(得分:0)

在代码下方创建2个for循环:

int k=0;//initilize k with 0 again 
for(int i=1; i<=row; i++) {
    for(int j=(row*2)-3; j>0;j--) {
        if(j>=i+k) {
            System.out.print("#");
        }
        else {
            System.out.print(" ");
        }
    }
    k++;
    System.out.println();}

答案 1 :(得分:0)

因此对于6行模式,您的代码会打印出来:

#
##
###
####
#####
######

一旦达到一半,您就没有任何东西可以开始减少“#”。此类作业会尝试教您基本的String操作和循环。

基本上,您需要做的是在行的一半后面附加“#”,然后删除其余部分的“#”,如下所示……

public void printPattern(int row) {
 String output = "#";
 for(int i = 1; i <= (row / 2) - 1; i++) {
   System.out.println(output);
   output += " #";
 }

 for(int i = 1; i <= (row / 2); i++) {
   System.out.println(output);
   output = output.substring(0, output.lastIndexOf("#")).trim();
 }
}

答案 2 :(得分:0)

您可以在两个for循环中编写完整的代码,就像

    public void printPattern(int row) {
        int j = 0;
        for (int i = 1; i <= row; i++) {
            boolean isFirstHalf = (i <= (row + 1) / 2);
            int noOfHashToPrint = (isFirstHalf) ? (2 * (i-1))+1 : (2 * (row-i) + 1);
            for (j = 1; j <= noOfHashToPrint; j++)
                System.out.print("#");
            System.out.println();
        }
    }

答案 3 :(得分:0)

我认为这是简单的功能,

public void printPattern(int row) {
int k=0;
for(int i=0; i<row; i++) {

    for(int j=0; j<=k; j++) {
            System.out.print("#");
        }
        k++;
    System.out.println();
    }


    }

答案 4 :(得分:0)

char[] value = new char[5];
int j = 0;
for (int i=0; i< 5;i++) {
    value[j]='#';
    System.out.println(value);
    if(i<2) {
    value[j+1] ='#';
    value[j+2] ='#';
    j=j+2;

    }
    else {
        if(j != 0) {
        value[j]=' ';
        value[j-1]=' ';
        j=j-2;

        }

    }
}