10. Codetransformation (while)

Submitted by javafrage on Tue, 01/03/2012 - 11:30

Transformieren sie die do-while Schleife der Methode in gleichwertige while-Schleifen und for-Schleifen.
Die main(), nurWhile() und forSchleife() Methoden erlauben Ihnen das Testen der Lösung


public class CodeTrans1 {
    /**
     * main Methode ist die Testinfrastruktur. Sie ist nicht direkt relevant zum
     * lösen der Aufgabe
     *
     * @param args Optionen werden nicht benutzt
     */

public static void main(String[] args) {
int b = 3;
System.out.println("Erster Durchlauf");
System.out.println("Vorgabe:");
doWhile(b);
System.out.println("nurWhile():");
nurWhile(b);
System.out.println("forSchleife():");
forSchleife(b);

System.out.println("Zweiter Durchlauf");
b = 0;
System.out.println("Vorgabe:");
doWhile(b);
System.out.println("nurWhile():");
nurWhile(b);
System.out.println("forSchleife():");
forSchleife(b);
}
/**
* Die Vorgabe der Aufgabe
* @param b
*/
public static void doWhile(int b) {
int i = 0;
String s;
if (b >= 0) { // b ist immer gößer Null!
do {
int k = i * 5;
s = (i % 2 == 0) ? "gerade" : "ungerade";
System.out.println("start():" + k + " ist " + s);
i++; // Schleifeninkrement
} while (i < b);

}
}
public static void nurWhile(int b) {
int i = 0;
String s;

if (b >= 0) { // b ist immer gößer Null!
// Hier die while Schleife implementieren
}
}
public static void forSchleife(int b) {
int i = 0;
String s;

if (b >= 0) { // b ist immer gößer Null!
// Hier die for Schleife implementieren
}
}
}

Niveau 1
Schwierigkeitsgrad mittel
Zeit

12 Minuten

Die Antwort ist bei der nächsten Frage zu finden (URL rechts unten)

Antwort zu Frage 9: Unterschiede zwischen dowhile-Schleifen und for-, while-Schleifen

Eine do-while Schleife wird immer mindestens einmal durchlaufen. Sie ist keine abweisende Schleife.

Anonymous (not verified)

Mon, 12/21/2015 - 22:21

Fehlen bei der for-Schleife nicht die geschweiften Klammern {}?

Stefan Schneider

Fri, 02/26/2016 - 20:50

In reply to by Anonymous (not verified)

Eine for Schleife führt immer einen Block aus. Der Block kann aus mehreren Befehlen in geschweiften Klammern bestehen...

... oder aus einem einzigen Befehl. Die zweite Option wurde hier verwendet.

In solchen Fällen ist immer die Java Spezifikation zur for-Schleife als finale Authorität hinzu zuziehen. :-)

Anonymous (not verified)

Wed, 12/14/2016 - 22:27

Das Feld wird nicht ganz durch iteriert, oder ?
Das Feld ist k+1 lang, es wird aber nur bis k durchlaufen und Werte zugewiesen.

Das Feld ist k+1 Elemente groß. Das erste Element steht auf Position 0 das letzte auf Position k. k ist dann auch der letzte Durchlauf der Schleife.
Die Überlegung war gut. Die Frage ist aber was geschieht mit dem Element auf Position 0?