Ungeeigneter Schleifentyp: Unterschied zwischen den Versionen

Aus Programmieren-Wiki
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
{{Bewertungsrichtlinie
{{CategoryBlock
|baustelle=Ja
|Baustelle=Ja
|blatt=2
|Java Grundlagen=Nein
|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.
|Organisation=Nein
|Programmierstil=Nein
|Bewertungsrichtlinie=Ja
|blattAnnotation=2
|blattAbzug=3
}}
{{Inhaltsblock
|vorher====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
* While-Schleifen eignen sich, wenn lediglich ein boolescher Ausdruck als Bedingung existiert
Zeile 8: Zeile 16:
* For-Schleifen sind geschickt für Schleifen mit klar definierter Vor- und Nachbereitung, wie es bei Zählvariablen/Indexdurchläufen der Fall ist.  
* 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.
*Muss ein Array oder eine Liste komplett durchlaufen werden ohne explizit benötigten Index so ist eine for-each-Schleife zu verwenden.
|schweregrad=leicht
}}
|negativ=<syntaxhighlight lang="Java">
{{Inhaltsblock
Person[] people = new Person[10];
|color=red
|vorher=Negativbeispiel:
|Beispiel=Person[] people = new Person[10];
// We imagine this array is filled after this point
// We imagine this array is filled after this point
for (int i = 0; i < people.length; i++) {
for (int i = 0; i < people.length; i++) {
System.out.print(people[i].getName());
System.out.print(people[i].getName());
}
}
</syntaxhighlight>
|beispielname=UngeeigneterSchleifentypBad
 
|nachher=Hier iterieren wir über die Indizes des Arrays obwohl wir nur die Objekte referenzieren wollen.
Hier iterieren wir über die Indizes des Arrays obwohl wir nur die Objekte referenzieren wollen.
}}
|positiv=<syntaxhighlight lang="Java">
{{Inhaltsblock
Person[] people = new Person[10];
|color=green
|vorher=Positivbeispiel:
|Beispiel=Person[] people = new Person[10];
// We imagine this array is filled after this point
// We imagine this array is filled after this point
for (Person person : people) {
for (Person person : people) {
System.out.print(person.getName());
System.out.print(person.getName());
}
}
</syntaxhighlight>
|beispielname=UngeeigneterSchleifentypGood
 
|nachher=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.
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.
|weiterlesen=Ja
|seite=Komplexität
}}
}}

Aktuelle Version vom 14. Oktober 2025, 09:59 Uhr

🚧 Diese Seite befindet sich in Bearbeitung 🚧
🤓 Diese Seite ist eine Bewertungsrichtlinie, die ab Blatt 2 annotiert und ab Blatt 3 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.