Java Sternen Quadrat?
Was mache ich falsch und wie bekomme ich das richtig hin?
ich soll eine beliebige Zahl eingeben z.B. 3 und dann soll 3x3 Sternchen rauskommen. (Mit der for-Schleife)
Danke ☺️
5 Antworten
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.
(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.
Wie genau muss ich das mit console aufschreiben? Es wird nämlich eine Fehlermeldung angezeigt.
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.
Na ja kopieren ist das ja nicht gleich. Ich hatte ja nur den Zeileneinschub falsch, aber trotzdem Danke für deine Hilfe.
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("*");
}
}
}
}
Oh. Ich hab nur die Umrandung gemacht. Innen nicht ausgefüllt. Dafür hast Du ja schon in anderen Posts die Lösung erhalten.
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.
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.
Bei meinem Script von der Uni sind die Klammern aber genau so gesetzt worden.
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.