Skip to Content

1.27 Codetransformation (while)

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 1.26: Felder (Implementieren)

public void erzeugeFibonacciFeld(int k) {
int [] fib=new int[k+1];
fib[0] = 0;
fib[1] = 1;
for (int i=2; i<= k; i++)
fib[i] = fib[i-1]+fib[i-2];
}

Comments

Fibunacci Feld

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

Naja, schon irgendwie

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?

For Schleife

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

Gute Überlegung...

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. :-)



blog | by Dr. Radut