Java Quadrat aus Sternen ausgeben?
Hallo ich hab eine Aufgabe ein Quadrat aus Sternen ausgeben zu lassen in Java. Hab ich auch durch ein bisschen probieren auch hinbekommen. Ich verstehe aber nicht ganz warum u und i zwei unterschiedliche Werte haben müssen die beiden schleifen sollten doch gleich oft durchlaufen oder nicht ? Wäre nett wenn mir das jemand erklären könnte. Hier ist der Quelltext dazu :
{ public static void main (String[] args)
{
int hoehe = IOTools.readInteger("Geben sie an wie hoch das Viereck sein soll: ");
int breite = IOTools.readInteger("Geben sie an wie breit das Viereck sein soll: ");
for (int u = 0; hoehe > u; u++)
{
for (int i = 1; breite > i; i++)
{
System.out.print("*");
}
System.out.println("*");
}
return;
}
}
1 Antwort
Die innere Schleife wird so oft durchlaufen, bis die Breite erreicht ist, die äußere Schleife bis zum Erreichen der Höhe. Ein Viereck ist nicht zwingend genauso breit wie hoch. Ein Rechteck ist z.B. auch ein Viereck, das breiter als hoch (oder umgekehrt) ist. Daher ist es richtig, zwei Schleifen zu verwenden.
Hier ein Beispiel für ein Viereck, bei dem die Anzahl Durchläufe je Schleife unterschiedlich sind (Höhe = 4; Breite = 14):
**************
**************
**************
**************
Noch ein kleiner Tipp: Programmierer definieren die Abbruchbedingung einer Schleife normalerweise andersherum. Das heißt also statt
for(int u = 0; hoehe > u; u++)
schreibt man eher
for(int u = 0; u < hoehe; u++)
weil es so besser nachvollzogen werden kann. Im Programm ändert das nichts, lässt sich aber leichter lesen. Besonders bei geschachtelten Schleifen, wie in diesem Code, ist es leichter, die Bedingung zu verstehen.
Hatte es mittlerweile auch selbst hinbekommen aber trotzdem danke kann es mir jetzt besser vorstellen :)