Java Sternen Quadrat?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
for(int i = 1; i <= zaehler; i++){
			for(int zeile 1; zeile <= zaehler; zeile++){
				System.out.println("*");
			}
			System.out.println();
		}

Der Zeileneinschub muss danach kommen.

clever00 
Fragesteller
 20.12.2020, 18:18

Wenn ich das aber so eingegeben dann kommt bei z.B. 4. 4 Sterne untereinander, dann eine Zeile frei und wieder 4 Sterne untereinander. Es soll ja 4x4 rauskommen.

0
clever00 
Fragesteller
 20.12.2020, 18:24
@clever00

Ah. Ich hab meinen Fehler gefunden. Danke für deine Hilfe.

0
ThoraxL  20.12.2020, 18:55
@clever00

hast du das falsch abgeschrieben oder woran lags?

0
clever00 
Fragesteller
 20.12.2020, 19:06
@ThoraxL

Ich hatte nur print und println miteinander vertauscht.

0
(Pseudocode)
for i = 0; i < zahl; i++
   for(d = 0; d < zahl; d++)
     console.print("*");
   console.println();

Das sollte dir die Ausgabe geben.

Das Problem was du hast ist, dass du beim println() auch ein Sternchen ausgibst und damit schreibst du ein Sternchen dort hin wo keines hin gehört.

clever00 
Fragesteller
 20.12.2020, 18:13

Wie genau muss ich das mit console aufschreiben? Es wird nämlich eine Fehlermeldung angezeigt.

0
PeterKremsner  20.12.2020, 18:14
@clever00

System.out.print und System.out.println() ich habe dir keinen Javacode geschrieben sondern nur Pseudocode der das vorgehen zeigen soll. Du musst daraus erst Java machen oder du kopierst die Antwort von ThoraxL.

1
clever00 
Fragesteller
 20.12.2020, 18:32
@PeterKremsner

Na ja kopieren ist das ja nicht gleich. Ich hatte ja nur den Zeileneinschub falsch, aber trotzdem Danke für deine Hilfe.

0

public class MyClass {

  public static void main(String args[]) {

   int zaehler=6;

  for (int zeile = 0; zeile < zaehler; zeile++) {

    if (zeile == 0 || zeile == zaehler - 1) {

      for (int spalte = 0; spalte < zaehler; spalte++) {

        System.out.print("*");

      }

      System.out.println("");

    }

    else {

      System.out.print("*");

      for (int space = 0; space < zaehler - 2; space++) {

        System.out.print(" ");

      }

      System.out.println("*");

    }

  }

    

  }

}

Iatros70  20.12.2020, 19:01

Oh. Ich hab nur die Umrandung gemacht. Innen nicht ausgefüllt. Dafür hast Du ja schon in anderen Posts die Lösung erhalten.

0

Du musst ein Rechteck ausgeben. Dieses Rechteck besteht aus Sternchen und Leerzeichen.

Hier einmal visuell dargestellt, die Leerzeichen als Unterstriche:

_*_
* *
_*_

Deine Schleife muss gegen die maximale Breite laufen und je Schritt muss es weniger Leerzeichen / mehr Sternchen geben.

Teile dir die Aufgabe in Teilpakete auf.

a) Zeichnen einer Zeile

b) Zeichnen mehrerer Zeilen

Ziehe mehrere Kontrollstrukturen (Verzweigungen, Schleifen) in Betracht, kombiniere sie.

ThoraxL  20.12.2020, 18:07

ich dachte er soll ein Quadrat, ausgefüllt mit Sternchen ausgeben lassen.

1
regex9  20.12.2020, 18:21
@ThoraxL

Da hast du vollkommen Recht, ich hatte beim Antworten zu viele Sterne vor Augen.

Sofern eine Korrektur: Keine Leerzeichen. Einfach nur schauen, wie man eine Zeile mit n Sternchen ausgibt und das n-mal wiederholen.

0

Bitte in Zukunft keine Screenshots und schon gar nicht Bildschirmfotos senden, das ist schwer lesbar und alles. Gewöhn dir an, bei 0 zu beginnen und bis zähler < ende zu zählen. Dann entferne einfach das unnötige println() Statement. Kleiner Tipp am Rande noch: In Java ist es geläufig,

if () {

}

und nicht

if ()
{

}

zu machen.

Woher ich das weiß:Hobby – Ich programmiere in meiner Freizeit mit Java.
clever00 
Fragesteller
 20.12.2020, 18:19

Bei meinem Script von der Uni sind die Klammern aber genau so gesetzt worden.

0
Yoshi32  20.12.2020, 18:23
@clever00

Vielleicht, weil deine Dozenten auch mit C Sprachen arbeiten, da ist das andere typisch.

0
clever00 
Fragesteller
 20.12.2020, 18:30
@Yoshi32

Hmm. Keine Ahnung. Auf jeden Fall weiß ich, dass es sich bei dem Script um for-Schleifen in Java handelt.

0