簡體   English   中英

使用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”,沒有人知道是否有比中斷更好的方法; 可以在這里休息一下嗎? 我聽說休息很隨意。 同樣,我總是覺得我不得不在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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM