2016-04-18 77 views
0

我想用星號在Java中繪製「方形」。我有一個帶有輸入參數的方形類,我試圖讓方法輸出「」的行,以便在一行中有多少個「」,並且有多少行存儲在類實例變量sideLength中。因此,如果代碼已經取得了廣場(3)然後,我通過一個叫drawSquare方法要輸出在Java中繪製「方形」

Click for image

到目前爲止,我有:

class Square { 

    int sideLength; 

    Square(int size) { 
     sideLength = size; 
    } 

    int getArea() { 
     return sideLength * sideLength; 
    } 

    int getPerimeter() { 
     return sideLength * 4; 
    } 

    void drawSquare() { 
    } 

    public static void main(String[] args) { 
     Square mySquare = new Square(4); 
     int area = mySquare.getArea(); 
     int perimeter = mySquare.getPerimeter(); 
     System.out.println("Area is " + area + " and perimeter is " + perimeter); 
     System.out.println("*" +) 
     Square mySquare2 = new Square(10); 
    } 
} 
+3

貌似這個練習的目的,以幫助您瞭解[for循環(https://docs.oracle.com/javase /tutorial/java/nutsandbolts/for.html)。 – dnault

回答

2

因爲這很容易,我不會給出解決方案,只是提供一些提示。

如果你看看你製作的方塊,你會看到,它的邊長爲3,它由3行3個星號組成。

要創建一個這樣的行,您需要使用從1到3的for()循環,並且每次打印一個"*"

,因爲你需要3個這樣的行,你會附上該第一環到另一個,那還要從1至3

至於最後提示:System.out.print("*")打印一個星號,不會開始新的一行。 System.out.println()開始一個新行。

+0

所以我需要一個for循環,通過計算sideLength和使用System.out.println()來確定需要多少行。產生這些行數。然後,我需要另一個for循環,打印出一組星號並使用System.out.print(「*」)在一行上打印星號。 在對for循環做了一點研究之後,這部分對我來說很有意義,但我對如何獲得在主系統輸出中打印出的void函數感到困惑。 – ThoseKind

+0

沒錯。循環(除了if())是任何編程語言最常用的結構之一。 – Ridcully

+0

但是如何在程序結束時得到一個無效方法輸出?我明白如何創建一個方法來獲得答案,但不能得到它的輸出。 – ThoseKind

0

你最好的選擇是使用2嵌套的for循環,輸出一定量的星號在一條線上,然後重複該行的時間是相同的。

for (int x = 0; x < sideLength; x++) { 
    for (int y = 0; y < sideLength; y++) { 
     System.out.print("*"); 
    } 
    System.out.println(""); //Short for new line. 
} 
+0

更喜歡'System.out.println()'而不是'System.out.println(「」)' – dnault

+0

@dnault我不知道這真的有效。我上次只在一年前使用過。 –

+0

謝謝你的幫助。這爲我開始編寫我自己的代碼版本提供了一個很好的基礎。 – ThoseKind

-4

嵌套的for循環是一個簡單的方法來做到這一點:

for(int i = 0; i< y; i++){ 
    for(int j = 0; j < x; j++){ 
     System.out.print("*"); 
    } 
    System.out.println(); 
} 
+1

至少提供一個很好的例子 –

+1

教魚,不要給魚。 –