Ungeeigneter Schleifentyp: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
Zeile 2: Zeile 2:
|baustelle=Ja
|baustelle=Ja
|blatt=1
|blatt=1
|beschreibung=Die Java-API bietet viele Kontrollstrukturen. Darunter viele verschiedene Schleifentypen.
|beschreibung=Java stellt verschiedene Schleifentypen bereit: while-Schleifen, do-while-Schleifen, for-Schleifen & for-each-Schleifen. Jeder von diesen Typen kann grundsätzlich die gleiche Aufgabe übernehmen. Dennoch spiegelt die konkrete Wahl Eigenschaften der Verwendung wider.
Je nach dem wie wir über eine Collection an Objekten iterieren wollen, eigenet sich die ein oder andere Schleife mehr als andere.


Es ist Beispielsweise unnütz viel Schreib- und Lesaufwand über einen Index zu iterieren um ein Objekt zu referenzieren, statt direkt über alle Objekte zu iterieren.
* While-Schleifen eignen sich, wenn lediglich ein boolescher Ausdruck als Bedingung existiert
Um den richtigen Schleifentyp zu wählen, sollten zunächst folgende Fragen gestellt werden:
* Do-While-Schleifen im Falle von einem gewährleisteten ersten Durchlauf.
* Brauche ich einen Index oder nur ein Objekt? (Arrays)
* For-Schleifen sind geschickt für Schleifen mit klar definierter Vor- und Nachbereitung, wie es bei Zählvariablen/Indexdurchläufen der Fall ist.
* Brauche ich einen Key oder einen Value? (Maps)
*Muss ein Array oder eine Liste komplett durchlaufen werden ohne explizit benötigten Index so ist eine for-each-Schleife zu verwenden.
* Muss ich wirklich über alle Indizes/Objekte iterieren?
* Brauche ich überhaupt eine Schleife oder lässt sich mein Problem anders lösen?
|schweregrad=leicht
|schweregrad=leicht
|negativ=<syntaxhighlight lang="Java">
|negativ=<syntaxhighlight lang="Java">

Version vom 17. Oktober 2024, 10:07 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 1 annotiert und ab Blatt 2 abgezogen wird. 🤓

Beschreibung

Java stellt verschiedene Schleifentypen bereit: while-Schleifen, do-while-Schleifen, for-Schleifen & for-each-Schleifen. Jeder von diesen Typen kann grundsätzlich die gleiche Aufgabe übernehmen. Dennoch spiegelt die konkrete Wahl Eigenschaften der Verwendung wider.

  • While-Schleifen eignen sich, wenn lediglich ein boolescher Ausdruck als Bedingung existiert
  • Do-While-Schleifen im Falle von einem gewährleisteten ersten Durchlauf.
  • For-Schleifen sind geschickt für Schleifen mit klar definierter Vor- und Nachbereitung, wie es bei Zählvariablen/Indexdurchläufen der Fall ist.
  • Muss ein Array oder eine Liste komplett durchlaufen werden ohne explizit benötigten Index so ist eine for-each-Schleife zu verwenden.


Negativbeispiel

Person[] people = new Person[10];
// We imagine this array is filled after this point
for (int i = 0; i < people.length; i++) {
	System.out.print(people[i].getName());
}

Hier iterieren wir über die Indizes des Arrays obwohl wir nur die Objekte referenzieren wollen.

Positivbeispiel

Person[] people = new Person[10];
// We imagine this array is filled after this point
for (Person person : people) {
	System.out.print(person.getName());
}

Hier benutzen wir einen sogenannten "enhanced-for-loop" der Java API. Dieser iteriert direkt über die Objekte, ohne erst über die Indizes zu iterieren, was den Code nicht nur besser lesbar, sondern auch kompakter und einfacher verständlich macht.


Wenn du diese Seite interessant fandest, findest du hier noch mehr Seite(n) dazu:
Komplexität