~Java4Beginners~
~Java4Beginners~

Schleifenanweisung for

Bei der Schleifenanweisung for handelt es sich um eine etwas umfangreichere Schleifenanweisung als bei do oder do - while.

Man spricht auch bei einer for-Schleife gerne von einer Zählschleife, da im Normalfall eine feste vorgegebene Anzahl von Durchläufen stattfindet.

for (Initialisierung;Wiederholungsbedingung;Aktualisierung)
{
    Anweisung(en);
}
Die Syntax liest sich auf den ersten Blick etwas umständlich. Lasst mich folgendes Beispiel erklären.

for (int i = 0;i <=10; i++)

Als erstes erfolgt die Initialisierung einer Zählvariablen vom Datentyp int.int i = 0;

Nun folgt die Wiederholungsbedingung. Wiederhole die Schleife so lange, so lange i kleiner oder gleich 10 ist.i<=10

Die Aktualisierung ist der Wert, um den die Zählvariable pro Durchlauf erhöht wird. In unserem Falle ist die Erhöhung um 1.i++

Im weiteren Verlauf wird uns die for-Schleife noch öfters begegenen, z. B. beim Auslesen von Array-Inhalten.

Auch mit dieser Schleifenanweisung will ich die Fakultät berechnen, als Beispiel, dass Sie mit allen 3 Schleifenarten das gleiche Ergebnis erzielen können.




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));
       System.out.println(eingabe+"! = "+fakultaetFor(eingabe));
    }
    /**
     * Berechnung der Fakultät mit einer For-Schleife
     * @param fakultaet Zahl, von welcher die Fakultät ermittelt werden soll
     * @return Fakultät der übergebenen Zahl
     */
    static long fakultaetFor(int fakultaet)
    {
        int ergebnis = 1;
        if (fakultaet == 0) ergebnis = 0;
        for (int i = 1; i<=fakultaet;i++)
        {
            ergebnis = ergebnis * i;
        }
        return ergebnis;
    }    
    /**
     * 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 < fakultaet);
        return ergebnis;
    }
}
Wenn wir das Programm laufen lassen, sehen wird, dass alle 3 Schleifenmöglichkeiten das gleiche Ergebnis liefern. Der Hauptunterschied liegt darin, welche Ausschlusskriterien wir für einen Schleifendurchlauf benötigen, bzw. welche Fehleingaben wir abfangen müssen.
nach oben Java4Beginners -- Seitenversion 1.0 -- Stand: 2017-05-11