3.2.1 Schleifentransformationen

Die drei Java Schleifentypen sind für unterschiedliche Zwecke entwickelt worden. Man Sie jedoch ineinander Überführen.

Hier sind einige Regeln

While Schleife in Do-While Schleife überführen

  von While Schleife zu do-While Schleife
Java
 while (Bedingung) {Block A }
do
   if (Bedingung)
      { Block A }
while ( Bedingung )
UML UML DIagramm do-While Schleife While Schleife

Do-While Schleife in While Schleife überführen

Eine Do-While Schleife führt einen Block mindestens einmal aus. Man kann Sie in eine While Schleife tranformieren in dem man den Block kopiert und voran stellt.

Vorsicht: Durch das duplizieren des Codes wird der Code schlechter wartbar!

  von Do-While Schleife zu While Schleife
Java
do
           
  Block A
while ( Bedingung )
Block A
while (Bedingung) {Block A }
UML UML DIagramm While Schleife do While Schleife

For-Schleife in eine While Schleife überführen 

  von For-Schleife zu While Schleife
Java
for (Initialiserung; Bedingung; Veränderung) {Block A}
Initialisierung
while (Bedingung) 
   {
     Block A;
     Veränderung
   }

While Schleife in For-Schleife überführen

While Schleifen kan man recht einfach in For-Schleifen überführen.

  von While-Schleife zu For-Schleife
Java
while (Bedingung) { Block A;}
for (; Bedingung;) {Block A}

 Eine solche Überführung wird aber recht selten angewendet, da der Initialisierungsanteil und die Veränderung der for Schleife irgendwo im Block A verborgen sind.

Do-While Schleife in For-Schleife überführen

Do-While Schleifen kan man auch recht einfach in For-Schleifen überführen.

  von While-Schleife zu For-Schleife
Java
do { Block A;} while (Bedingung)
Block A; for (; Bedingung;) {Block A;}

 Eine solche Überführung wird aber recht selten angewendet, da der Initialisierungsanteil und die Veränderung der for Schleife irgendwo im Block A verborgen sind.

Anonymous (not verified)

Sun, 12/11/2016 - 16:02

Hallo,

muss bei der Transformation von der For Schleife zu der While Schleife hinter die Initialisierung ein Semikolon?

Und mir ist aufgefallen, dass bei der letzten Transformation die Begriffe in der Tabelle nicht stimmen.Es handelt sich um eine Transformation von einer Do While Schleife zu einer For Schleife, aber in der Tabelle steht von einer While Schliefe zu einer While Schleife.

Mit freundlichen Grüßen!