使用 for 循环在 Java 中绘制栅栏

Draw a fence in Java using for loops

我的任务是制作一个栅栏绘图程序。到目前为止,我可以让用户输入值来设置高度和宽度,并使用嵌套的 for 循环我可以将高度和宽度输出为“#”符号。问题是我需要它有一个 # 和 | 的边框。在中间。

目前 4 高 4 宽的栅栏看起来像这样

####     
####
####
####

我需要它看起来像这样

####
#||#
#||#
####


   public void draw() {
       for (i = 1; i < height-1; i++) {
           System.out.print("#");
           for (j = 1; j < width-1; j++) {
               System.out.print("|");
           }
           System.out.println("#");
       }
       fenceCount++;
   }

什么时候可以休息一下。我有一个循环询问用户是否想要构建另一个类型为 y 或 n 的栅栏。在终止用户输入的最后 "n" 有没有人知道是否有比休息更好的方法来做到这一点; ?并且这里是单次休息 "ok" 吗?我听说 breaks 在循环中很草率。而且我总觉得我必须扭转我对while循环的想法。

您的围栏输出当前将完全用“#”填充
你说得对,顶行和底行只有'#'

对于剩余的行,对于第一列和最后一列中的条目,您需要 #,否则需要 |

这里有一些东西可以帮助你:

for (i = 1; i <= height; i++)
   {
     if(first or last row)
     {
        for (j = 1; j <= width; j++)
        {
         print#
        }
     }
     else{
           for (j = 1; j <= width; j++)
           {
               if(j=1 or j=last column)
                   print '#'
               else
                   print '|'
           }
         }
      System.out.println();
   }

这会让你建好栅栏:-)

draw()更改为:

public void draw() {
    String border = String.format("%0" + width +"d", 0).replace("0", "#");
    System.out.println(border); // top-border
    for (int i = 1; i < height-1; i++) {
        System.out.print("#"); 
        for (int j = 1; j < width-1; j++) {
            System.out.print("|");
        }
        System.out.println("#");
    }
    System.out.println(border); // bottom-border
}