Java 使用循环打印图案

Java 使用循环打印图案,java,java-8,Java,Java 8,嘿,伙计们,我正在解决一个需要打印的问题 123456 1 2 3 4 5 1 2 3 4 1 2 3 1 2 1. public class Set_5_P5_18b{ 公共静态void main(字符串[]args){ int x; 弦y; x=1; y=“”; System.out.println(“模式B:”); 而(x

嘿,伙计们,我正在解决一个需要打印的问题

123456
1 2 3 4 5
1 2 3 4
1 2 3 
1 2
1.
public class Set_5_P5_18b{
公共静态void main(字符串[]args){
int x;
弦y;
x=1;
y=“”;
System.out.println(“模式B:”);
而(x<7){
y=y+x+“”;
x++;
}
系统输出打印项次(y);
}
}

我在上面写的是第一行,但我不知道如何修改它来打印第二行,有人能帮我吗

Yuo需要外部for循环来运行从值6到1的x。对于x的每个值,都需要一个为值1运行的内部循环。。。x,并在一行中打印出值


请记住这一点,并尝试先提出伪代码,然后提出实现代码。

您的输出可以像二维数组一样观察,其中:

  • 索引
    i
    自上而下增长,表示行索引
  • 索引
    j
    从左向右增长,表示列索引

您现在所做的是迭代第一行的列,就是这样。 正如注释中提到的,您还应该添加第二个循环来迭代行

以下是如何通过两个
for
循环实现这一点:

int colSize = 6;
int rowSize = 6;
for(int i = 1; i <= rowSize; i++) {
    for(int j = 1; j <= colSize; j++) {
        System.out.print(j + " ");      // print individual column values
    }
    System.out.println();               // print new line for the next row
    colSize--;                          // decrement column size since column size decreases after each row
}
int colSize=6;
int rowSize=6;

对于(int i=1;i当您退出while:p时,您必须重置变量x。当您编写for循环时,您意识到您希望for循环的某个方面在程序每次迭代时都发生更改,您希望使用嵌套for循环(for循环中的for循环)的9/10次

所以,基本上每次迭代for循环时,都希望减少for循环的持续时间

for(int num=1;num<;num++){}

下面是代码方法

public static void print(int x) {
    for (int lengthOfFor = x; lengthOfFor > 0; lengthOfFor--) {
        for (int num = 1; num <= lengthOfFor; num++) {
            System.out.print(num + " ");
        }
        System.out.print("\n");
    }
}
公共静态无效打印(int x){
对于(int lengthOfFor=x;lengthOfFor>0;lengthOfFor--){
对于(int num=1;num 0;lengthOfFor--){
对于(int num=1;num解决方案:

public static void printPattern(int rows) {
    IntStream.range(0, rows).map(r -> rows - r).forEach(x -> {
        IntStream.rangeClosed(1, x).forEach(y -> {
            System.out.print(String.format("%3d", y));
        });
        System.out.println();
    });
}
用法:

printPattern(9);
输出:

1  2  3  4  5  6  7  8  9
1  2  3  4  5  6  7  8
1  2  3  4  5  6  7
1  2  3  4  5  6
1  2  3  4  5
1  2  3  4
1  2  3
1  2
1

你尝试过什么?你需要另一个循环。请注意,这不是一个调试器。第二行在哪里?从n=6开始,打印i=0到n,每一步递减n…你想要一个嵌套循环(另一个循环中的一个循环)。我不知道如何使用嵌套循环来获取第二行
1  2  3  4  5  6  7  8  9
1  2  3  4  5  6  7  8
1  2  3  4  5  6  7
1  2  3  4  5  6
1  2  3  4  5
1  2  3  4
1  2  3
1  2
1