【问题标题】:Backwards Nested For loops in Java?Java中向后嵌套的For循环?
【发布时间】:2023-03-09 13:24:01
【问题描述】:

如何打印?

!!!!!!!!!!!!!!!!!!!!!!
\\!!!!!!!!!!!!!!!!!!//
\\\\!!!!!!!!!!!!!!////
\\\\\\!!!!!!!!!!//////
\\\\\\\\!!!!!!////////
\\\\\\\\\\!!//////////

我有:

public class SlashFigure {
    public static void main(String[] args){
        first();
    }
    
    

        public static void first() {
            for ( int i= 1; i<=6; i++) {
                for (int l = 0; l <= 2 * i -2; l++) {
                    System.out.print("\\");
                }
                        for (int e = 22; e >= -2*i + 26; e-=1) {
                            System.out.print("!");
                        }
                                for (int r = 0; r <= 2 * i -2; r++) {
                                    System.out.print("/");
                                }
                      System.out.println();
            }
        }
    }

它正在打印这个:

\/
\\\!///
\\\\\!!!/////
\\\\\\\!!!!!///////
\\\\\\\\\!!!!!!!/////////
\\\\\\\\\\\!!!!!!!!!///////////

【问题讨论】:

标签: java for-loop nested-loops figure


【解决方案1】:

您编写的代码比您需要的多。您显示的线条模式只是 line * 2 * \ + 22 - line * 4 * ! + line * 2 * /,正好超过 6 行,但它始终是 2 个字符的组,因此我们可以将所有这些除以 2,并观察 @ 987654324@ 和 // 遵循相同的规则:

for(int i=0, j=0, k=0; i<6; i++) {
  for(j=0; j<i; j++) { System.out.print("\\\\"); }
  for(k=0; k<(11-2*i); k++) { System.out.print("!!"); }
  for(j=0; j<i; j++) { System.out.print("//"); }
  System.out.println();
}

完成。

【讨论】:

    【解决方案2】:

    您有多个嵌套的 for 循环,但您只需要一个开销循环即可逐行接近。

    for(int i = 0; i < 6; i++){
        for(int k = 0; k < i*2; k++) System.out.print("\\");
        for(int j = i*2; j < 22 - (i*2); j++) System.out.print("!");
        for(int l = 0; l < i*2; l++) System.out.print("/");
        System.out.println();
    }
    

    【讨论】:

    • 和更有效的初始 for(int i=0for(int i=0,j=0,k=0) 然后使用 for(k=0) 两次,对于 '\\' 和 '//' 因为它们是相同的组。跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-03
    • 2021-07-29
    • 2016-01-11
    相关资源
    最近更新 更多