编写一个产生此输出的NESTED LOOP代码段

时间:2015-05-21 02:35:50

标签: java loops nested

我知道还有另一个同名的帖子,但答案并不是我正在寻找的答案。

我只能用于循环。另一个答案使用复杂的语法,如:

reverse = !reverse ? i == max : reverse;

i = reverse ? i-1 : i+1;

可以比那简单吗?

非常感谢。

所以,这是输出。

我只能到4岁才知道如何远离那里......

1

1 2

1 2 3

1 2 3 4

1 2 3

1 2

1

这是我到目前为止所做的:

    public static void main(String[] args) {
    // TODO Auto-generated method stub
    for(int i=1;i<=4;i++) {
        for(int j = 1; j <= i; j++) System.out.print(j+" ");
        System.out.println("");
    }
    for(int i=4;i>=1;i--){
        for(int j = 1; j <= i; j++) System.out.print(j+" ");
        System.out.println("");
    }
}

}

但我的输出如下:

1

1 2

1 2 3

1 2 3 4

1 2 3 4

1 2 3

1 2

1

2 个答案:

答案 0 :(得分:0)

您好我已经使用以下代码

public class Test
{
    public static void main(String args[]) {
            int j,i;
            int max=4;
            int n=0;
            for(i=0;i<((max*2)-1);i++)
            {
                    if(i<max)
                     n++;
                    else
                     n--;
                    for(j=1;j<=n;j++)
                    {
                            System.out.print(j+" ");
                    }
                    System.out.println("");
            }
    }
}

以下是输出

enter image description here
您可以将其概括为任何数字我希望这很好

答案 1 :(得分:0)

你的两个外圈是:

for(int i=1;i<=4;i++) {
for(int i=4;i>=1;i--) {

这将生成序列1,2,3,4,4,3,2,1。如果您想在输出中只有一个4长行,请将第二个循环更改为:

for(int i=3;i>=1;i--) {

所以它从3开始,而不是4.问题是,目前,你的外部循环都会紧接着生成值4。