2016-04-18 13 views
0

Ich versuche, ein "Quadrat" in Java mit Sternchen zu zeichnen. Ich habe eine quadratische Klasse mit einem Eingabeparameter, ich versuche, die Methode zur Ausgabe von Zeilen von "", so dass es so viele "" in einer Zeile und so viele Zeilen wie der Wert in der Klasseninstanz Variable sideLength gespeichert . Also, wenn der Code einen Platz (3) gemacht hat, dann möchte ich die AusgabeZeichnen eines "Square" in Java

Click for image

über eine Methode namens drawSquare.

Bisher habe ich:

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

wie der Zweck dieser Übung Looks helfen Sie lernen [for-Schleifen] (https://docs.oracle.com/javase /tutorial/java/nutsandbolts/for.html). – dnault

Antwort

2

Da dies wirklich einfach ist, gebe ich nicht die Lösung, sondern nur ein paar Hinweise.

Wenn Sie sich das Quadrat ansehen, das Sie erfunden haben, sehen Sie, dass es eine Seitenlänge von 3 hat und aus 3 Reihen mit je 3 Sternen besteht.

Um eine solche Zeile zu erstellen, verwenden Sie eine for() Schleife, die von 1 bis 3 geht und jedes Mal ein "*" druckt.

Wie Sie 3 solche Zeilen benötigen, dann würden Sie, dass die erste Schleife in eine andere einschließen, die als letzte Hauch von 1 bis 3

geht auch: System.out.print("*") ein Sternchen druckt und nicht eine neue Zeile beginnt. System.out.println() startet eine neue Zeile.

+0

Also würde ich eine for-Schleife benötigen, die bestimmt, wie viele Zeilen benötigt werden, indem man bis sideLength zählt und System.out.println() verwendet; um diese Anzahl von Zeilen zu erzeugen. Dann würde ich eine andere for-Schleife benötigen, die eine bestimmte Anzahl von Sternen ausgibt und System.out.print ("*") verwendet, um die Anzahl der Sterne in einer Zeile zu drucken. Dieser Teil macht jetzt Sinn für mich nach ein wenig Forschung für for-Schleifen, aber ich bin verwirrt, wie man eine leere Funktion zum Ausdrucken in der Hauptsystem-Ausgabe bekommen. – ThoseKind

+0

Genau. Schleifen sind (neben 'if()') eines der am häufigsten verwendeten Konstrukte einer Programmiersprache. – Ridcully

+0

Aber wie bekomme ich eine void-Methode zur Ausgabe am Ende des Programms? Ich verstehe, wie man eine Methode erstellt, um die Antwort zu erhalten, sie aber nicht ausgeben kann. – ThoseKind

0

Ihre beste Wette 2 verschachtelten for-Schleifen zu verwenden wäre, eine bestimmte Menge von Sternchen in einer Zeile ausgegeben, dann wird diese Zeile die gleiche Menge an mal wiederholen.

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

Lieber 'System.out.println()' anstelle von 'System.out.println (" ")' – dnault

+0

@dnault Ich wusste nicht, dass das tatsächlich funktioniert. Ich habe das letzte Mal wie vor einem Jahr benutzt. –

+0

Danke für die Hilfe. Dies stellte eine gute Grundlage für mich dar, meine eigene Version dieses Codes zu schreiben. – ThoseKind

-4

verschachtelte for-Schleifen sind eine einfache Möglichkeit, dies zu tun:

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

Geben Sie mindestens ein Beispiel zum Ausprobieren –

+1

Teach zu Fisch, geben Sie keinen Fisch. –