Die folgende Schleife wird anzahlSterne Sterne in einer
Zeile ausgeben.
stern = 1; while ( stern <= anzahlSterne ) { System.out.print("*"); stern = stern + 1; }
So.... jetzt haben wir zwei Teile: (1) den Teil, der gewährleistet, dass die erforderliche Anzahl Zeilen "passiert" und, (2) den Teil, der die erforderliche Anzahl von Sternen pro Zeile ausgibt. Hier ist ein vollständiges Programm mit den zwei zusammengesetzten Teilen:
import java.util.Scanner;
class Sternchen
{
public static void main (String[] args )
{
int anzahlZeilen; // die Anzahl der Zeilen
int anzahlSterne; // die Anzahl der Sterne pro Zeile
int zeile; // aktuelle Zeilennummer
int stern; // die Anzahl der Sterne in dieser Zeile soweit
Scanner scan = new Scanner( System.in );
// Input vom Anwender sammeln
System.out.println( "Wie viele Zeilen?" );
anzahlZeilen = scan.nextInt();
System.out.println( "Wie viele Sterne pro Zeile?" );
anzahlSterne = scan.nextInt();
zeile = 1;
while ( zeile <= anzahlZeilen )
{
stern = 1;
while ( stern <= anzahlSterne )
{
System.out.print("*");
stern = stern + 1;
}
System.out.println(); // notwendig, um jede Zeile zu beenden
zeile = zeile + 1;
}
}
}
Der Teil, der für die Ausgabe der richtigen Anzahl von Sternen pro Zeile zuständig ist,
ist in blau.
Beachtet, dass eine while-Schleife im Körper der anderen Schleife ist.
Das ist ein Beispiel für eine geschachtelte Schleife.
Die Schleife, die im Körper einer anderen ist, wird
innere Schleife genannt.
Die andere wird äußere Schleife genannt.
Was würde das Programm tun, wenn der Anwender nach einer negativen Anzahl von Sternen pro Zeile fragt?