Apps für Android programmieren leicht gemacht!
2.3 Schleifen

2.3 Schleifen

In diesem Kapitel lernt ihr, wie Schleifen in Java realisiert werden, welche unterschiedlichen Schleifen es gibt, welche Bedeutung sie haben und wofür diese benötigt werden.

Zweck:

Schleifen sind eine hervorragende Sache, um Daten zu verarbeiten, Prozeduren zu durchlaufen und Daten zu gewinnen. Natürlich sind der Schleife, als Anwendungszweck, in Java kein Grenzen gesetzt und ihr werdet im Laufe eurer Programmierung noch viele weitere Aufgaben damit lösen können. Wir beschäftigen uns nun exemplarisch mit einer Aufgabe und werden diese auf die verschiedenen Schleifen projizieren. Eine Schleife wird so lange durchlaufen, bis eine Bedingung erfüllt ist. Diese Bedingung kann unterschiedliche Prüfungen enthalten (Abbruch bei false, Abbruch bei größer als, Abbruch bei kleiner als, Abbruch bei gleichem Wert, usw.).

Unser Beispiel:

Das Beispiel, an dem wir uns in diesem Kapitel beschäftigen werden, ist die Verarbeitung von Arrays.Dazu fangen wir das Beispiel aus dem Kapitel 2.2: Variablen und Arrays wieder auf. Unter dem Punkt Arrays hatten wir nun den Fall beschrieben, dass man in einer App das Durchschnittsalter aller Schüler in einer Klasse berechnen möchten. Wir gehen einmal davon aus, dass wir eine Klasse von 7 Schülern haben. Das Alter der Schüler beträgt 8,9,7,9,8,7 und 8.
Wenn wir nun per Hand rechnen: 8+9+7+9+8+7+8 = 56
56 / 7 = 8
Das würde bedeuten alle 7 Schüler haben zusammengezählt ein Durchschnittsalter von 8 Jahren.

Als erstes erstellen wir nun ein Array mit allen 7 Schülern und dem Alter als Wert.

int[] schueler = new int[7];

schueler[0] = 8;
schueler[1] = 9;
schueler[2] = 7;
schueler[3] = 9;
schueler[4] = 8;
schueler[5] = 7;
schueler[6] = 8;

Als nächstes wollen wir alle Werte im Array zusammenzählen, dazu können wir Schleifen verwenden.

Unsere erste Schleife:

Als erstes Beispiel wollen wir gerne eine kopfgesteuerte Schleife verwenden. Was nun eine kopfgesteuerte Schleife ist werden wir später noch klären.

[... Wir nehmen an wir bekommen das Array schueler, wie oben definiert, vorgegeben und können es verwenden ...]

int i = 0;
int gesamtalter = 0;

while(i < schueler.length){

   gesamtalter = gesamtalter + schueler[i];

   i = i + 1;

}

Mehr müssen wir nicht schreiben, um alle Spalten aus schueler auszulesen und zu addieren.

In Zeile 3 definieren wir eine Variable, die wir später innerhalb der Schleife verwenden, um zu sehen wie oft wir diese bereits durchlaufen haben.
In Zeile 4 definieren wir die Variable, in die wir das Gesamtalter alle Schüler addieren.
In Zeile 6 fangen wir nun mit der eigentlichen Schleife an. Die While-Schleife führt die Befehle innerhalb der Zeichen „{“ und „}“ so oft aus, bis die Variable i größer ist als die Länge des Arrays. Somit steht hinter dem Befehl while in der Klammer die Abbruchbedingung. Ist die Bedingung innerhalb der Klammer erfüllt werden die Befehle nicht mehr ausgeführt.

For-Schleifen:

Neben der While-Schleife gibt es noch die For-Schleife, diese können wir folgendermaßen verwenden:

[... Wir nehmen an wir bekommen das Array schueler, wie oben definiert, vorgegeben und können es verwenden ...]

int gesamtalter = 0;

for(int i=0; i < schueler.length; i++){

   gesamtalter = gesamtalter + schueler[i];

}

Wie wir sehen können wir die Laufvariable i, die die Abbruchbedingung dann erfüllen soll direkt innerhalb der Klammer für die Abbruchbedingung schreiben. Gefolgt wird diese neu definierte Laufvariable von der eigentlichen Abbruchbedingung und anschließend definieren wir, dass i jedes mal um 1 erhöht werden soll.
Wichtig ist bei dieser Schleife zu beachten, dass wir die Laufvariable i nur innerhalb der Schleife verwenden können. (Warum dies so ist lernen wir in Kapitel 2.6 Lebensdauer von Variablen).

Fußgesteuerte Schleifen:

Nach der While-Schleife wollen wir uns eine fußgesteuerte Schleife anschauen. Diese bestimmt die Abbruchbedingung, wie der Name vermuten lässt, im Fuß. Dies hat den Vorteil, dass diese Schleife mindestens einmal ausgeführt wird, auch wenn die Abbruchbedingung eigentlich bereits erfüllt ist, da die Abbruchbedingung erst am Ende der Schleife geprüft wird. Kopfgesteuerte Schleifen, wie die While-Schleife oder die For-Schleife prüfen direkt zu Beginn, ob diese Schleife überhaupt erst ausgeführt werden soll. Diese Schleife halt erst am Ende/Fuß.

boolean Bedingung = false;

do
{
  // Die Anweisungen werden trotz dem Wahrheitswert "false" mindestens einmal ausgeführt.
}
while(Bedingung);

Wenn wir unser Beispiel auf diese Schleife projizieren lautet der Befehl folgendermaßen:

[... Wir nehmen an wir bekommen das Array schueler, wie oben definiert, vorgegeben und können es verwenden ...]

int i = 0;
int gesamtalter = 0;

do{

   gesamtalter = gesamtalter + schueler[i];

   i = i + 1;

}
while(i < schueler.length);

Marvin

Ich bin 23 Jahre jung und studiere zurzeit Wirtschaftsinformatik an der Georg-August-Universität in Göttingen. Ich bin ein Mensch, der sich neben der Programmierung noch für tausend andere Dinge interessiert, die mal mehr und mal weniger verrückt sind. Vor allem aber bin ich Feuer und Flamme mit der Programmierung von eigenen kleinen Apps und Programmen, die mein Leben bereichern.

Kommentar hinzufügen

*Pflichtfeld