数字广场循环 - Java

时间:2015-09-02 12:28:08

标签: java for-loop

我希望它只看这个:

1 2 3 4 5
2 3 4 5 4
3 4 5 4 3
4 5 4 3 2
5 4 3 2 1

但结束了:

1 2 3 4 5
2 3 4 5 4 3 2 1
3 4 5 4 3 2 1
4 5 4 3 2 1
5 4 3 2 1

这是我的代码:

for(int a = 1; a <= 5; a++){
    for(int b = a; b <=5; b++){
        System.out.print(b+ " ");
    }
    if(a != 1){
        for(int c = 4; c >= 1; c--){    
            for(int d = c; d == c; d--){
                System.out.print(d + " ");  
            }
        }
    }
    System.out.println();   
}

3 个答案:

答案 0 :(得分:0)

您的内部for循环看起来不太好。试试这个:

for(int a = 1; a <= 5; a++){
    for(int b = a; b <=5; b++){
        System.out.print(b+ " ");
    }
    for(int c = 4; c >= 6-a; c--){
        System.out.print(c + " ");
    }
    System.out.println();
}

注意:您也不再需要if(a != 1)检查,因为第二个(内部)for循环仅针对2 <= a <= 5执行 (由于外部a

for不能超过5

答案 1 :(得分:0)

试试这个

 for(int a = 1; a <= 5; a++){
    int numberByLine=5;
        for(int b = a; b <=5; b++){
            System.out.print(b+ " ");
numberByLine--;
        }
        if(a != 1){
            for(int c = 4; numberByLine!=0; c--){    
                    System.out.print(c + " ");
numberByLine--;
            }
        }
            System.out.println();
 }

答案 2 :(得分:0)

我删除了a!= 1支票以使其更清洁 添加了一个maxval变量,以便您可以制作不同大小的正方形

int maxval = 5;
for(int a = 1; a <= maxval; a++){
    for(int b = a; b <= maxval; b++){
        System.out.print(b+ " ");
    }
    for(int c = (maxval-1); c > (maxval-a); c--){    
        System.out.print(c + " ");
    }
    System.out.println();
}