~Java4Beginners~
~Java4Beginners~

Schleifenanweisung do while

Im Gegensatz zur while-Schleife findet die Wiederholungsprüfung der do while Schleife am Ende des Schleifenkörpers statt. Als Schlüsselwörter werden do und while verwendet.

do
{
    Anweisung(en);
}
while (Wiederholungsbedingung);
Die Prüfung am Schleifenende kann allerdings fehlerbehaftet sein. Sollten wir eine Division mit einem Zähler durchführen, und dieser den Wert 0 haben, so führt dies zu einem Fehler. In diesem Falle empfehle ich, eine break-Anweisung in einer if-Verzweigung zu verwenden, welche bei einer Division durch 0 die aktuelle Schleife verlässt.

Um die Funktionsweise der do-while-Schleife zu zeigen, werde ich die Fakultätsberechnung, welche wir mit der while-Anweisung bereits programmiert hatten, mit einer do-while verwirklichen.


Es fällt die break-Anweisung innerhalb des Schleifenkörpers auf. Es gibt 3 Fälle, in denen die Fakultät der natürlichen Zahl gleich der natürlichen Zahl ist, nämlich 0, 1 und 2. Für diese 3 Fälle wurde im Schleifenkörper die if-Verzweigung erstellt. Wenn die übergebene Zahl <=2 ist, wird dem Ergebnis der Wert der übergebenen Zahl übergeben und mit dem Schlüsselwort break die Schleife verlassen.


import java.util.Scanner;

/**
 * Berechnung einer Fakultät
 * @author Markus Badzura
 */
public class Fakultaet 
{
    static Scanner sc = new Scanner(System.in);
    public static void main(String[] args)
    {
       System.out.println("Von welcher Zahl soll die Fakultät ermittelt werden? ");
       int eingabe = sc.nextInt();
       System.out.println(eingabe+"! = "+fakultaetWhile(eingabe));
       System.out.println(eingabe+"! = "+fakultaetDoWhile(eingabe));
    }
    /**
     * Berechnung der Fakultät einer Zahl mit while-Schleife
     * @param fakultaet Zahl, von welcher die Fakultät ermittelt werden soll.
     * @return Fakultät der übergebenen Zahl
     */
    static long fakultaetWhile(int fakultaet)
    {
        long ergebnis = fakultaet;
        while (fakultaet>1)
        {
            fakultaet--;
            ergebnis = ergebnis * fakultaet;
        }
        return ergebnis;
    }
    /**
     * Berechnung der Fakultät mit einer Do-While-Schleife
     * @param fakultaet Zahl, von welcher die Fakultät ermittelt werden soll
     * @return Fakultät der übergebenen Zahl
     */
    static long fakultaetDoWhile(int fakultaet)
    {
        long ergebnis = 1;
        int zaehler = 0;
        do
        {
            if (fakultaet <= 2) 
            {
                ergebnis = fakultaet;
                break;
            }
            zaehler++;
            ergebnis = ergebnis * zaehler;
        }
        while (zaehler
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-05-10