使用for循环的Java打印模式

使用for循环的Java打印模式,java,Java,我需要得到以下模式 开发了以下代码 public static void main(String[] args) { int number = 9; for(int i=0;i<9;i++){ for(int j=0;j<18;j++){ if(number==6) continue; System.out.prin

我需要得到以下模式

开发了以下代码

    public static void main(String[] args) {
        int number = 9;
        for(int i=0;i<9;i++){
            for(int j=0;j<18;j++){
                if(number==6)
                    continue;
                System.out.print(number);
            }
            if(number != 6)
            System.out.println();
            number--;
        }
    }
publicstaticvoidmain(字符串[]args){
整数=9;
对于(int i=0;i
如果(j=18-数字)
系统输出打印(编号);
其他的
系统输出打印(“”);
如果(j=18-数字)
系统输出打印(编号);
其他的
系统输出打印(“”);
您可以尝试以下方法:

public class CurveOutput {

    public static void main(String args[]) {
        int startNumber = 9;

        for (int currentNum = startNumber; currentNum >= 0; currentNum--) {
            StringBuilder line = new StringBuilder();
            for (int i = 0; i < currentNum; i++) {
                line.append(currentNum);
            }
            for (int i = 0; i < startNumber - currentNum; i++) {
                line.append(" ");
            }
            System.out.println(line.toString() + line.reverse().toString());
        }
    }
}
你可以试试这个:

public class CurveOutput {

    public static void main(String args[]) {
        int startNumber = 9;

        for (int currentNum = startNumber; currentNum >= 0; currentNum--) {
            StringBuilder line = new StringBuilder();
            for (int i = 0; i < currentNum; i++) {
                line.append(currentNum);
            }
            for (int i = 0; i < startNumber - currentNum; i++) {
                line.append(" ");
            }
            System.out.println(line.toString() + line.reverse().toString());
        }
    }
}

在我看来,它实际上是在正确的抽象层次上编程

要求不是在开头或结尾放尽可能多的空格,而是将数字向左或向右对齐。如果有这样的功能,它会更好,而且很可能更可读。有这样的功能:

public static void main(String args[]) {
    int startNumber = 9;

    for (int i = startNumber; i > 0; i--) {
        String numberToPrint = Strings.repeat("" + i, i); // from Google Guava

        String leftHalf  =  String.format("%-" + startNumber + "s", numberToPrint);
        String rightHalf =  String.format("%"  + startNumber + "s", numberToPrint);

        System.out.printf("%s%s%n", leftHalf, rightHalf);
    }
}

在我看来,它实际上是在正确的抽象层次上编程

要求不是在开头或结尾放尽可能多的空格,而是将数字向左或向右对齐。如果有这样的功能,它会更好,而且很可能更可读。有这样的功能:

public static void main(String args[]) {
    int startNumber = 9;

    for (int i = startNumber; i > 0; i--) {
        String numberToPrint = Strings.repeat("" + i, i); // from Google Guava

        String leftHalf  =  String.format("%-" + startNumber + "s", numberToPrint);
        String rightHalf =  String.format("%"  + startNumber + "s", numberToPrint);

        System.out.printf("%s%s%n", leftHalf, rightHalf);
    }
}
试试这个

int num=9,save=9;
        for(int i=1;i<10;i++)
        { 

            for(int j=1;j<=18&&num!=6;j++)
        { 
                int t=save-num;

                 if(((j<=(9-t)) || (j>(9+t))))
            System.out.print(num);

                else 
                    System.out.print(" ");
        }
            num=num-1;
        System.out.println("\n"); 
        } 
int num=9,save=9;
对于(inti=1;i试试这个

int num=9,save=9;
        for(int i=1;i<10;i++)
        { 

            for(int j=1;j<=18&&num!=6;j++)
        { 
                int t=save-num;

                 if(((j<=(9-t)) || (j>(9+t))))
            System.out.print(num);

                else 
                    System.out.print(" ");
        }
            num=num-1;
        System.out.println("\n"); 
        } 
int num=9,save=9;
对于(int i=1;i
q17包;
公开课Q17{
公共静态void main(字符串[]args){
int x=9,y=10;
对于(int i=x;i>=1;i--){
如果(i==6){
x--;
y++;
继续;
}
对于(int j=1;j=x)和(j
q17包;
公开课Q17{
公共静态void main(字符串[]args){
int x=9,y=10;
对于(int i=x;i>=1;i--){
如果(i==6){
x--;
y++;
继续;
}

对于(int j=1;j=x)和(j工作代码:

改进了“Joby Wilson Mathews”的代码(建议队列已满,重新发布)
注意:以前的代码在第4行打印一个空行,现在已修复。还提供了到输出图像的链接。

工作代码:

改进了“Joby Wilson Mathews”的代码(建议队列已满,重新发布) 注意:以前的代码在第4行打印一个空行,现在已修复。还提供了到输出图像的链接

int num = 9, save = 9;
            for (int i = 1; i < 10; i++) {

                for (int j = 1; j <= 18 && num != 6; j++) {
                    int t = save - num;

                    if (((j <= (9 - t)) || (j > (9 + t)))) {
                        System.out.print(num);
                    } else {
                        System.out.print(" ");
                    }
                }
                num = num - 1;
                if (num != 6) {
                    System.out.println();
                }
            }

        }
999999999999999999
88888888  88888888
7777777    7777777
55555        55555
4444          4444
333            333
22              22
1                1