<jupyter_start><jupyter_text>SchleifenEin weiterer wichtiger Aspekt des Programmierens ist es, sich wiederholende Anweisungen zu automatisieren. Im Beispiel zur Addition von Zahlen haben wir eine Variable `sum` für die Zwischenergebnisse verwendet. Genau wie es oben steht, würde ein Mensch rechnen. Die Erklärung, wie die Berechnung durchzuführen ist, wäre allerdings erheblich kürzer: Ein Mensch würde z.B. folgende Anweisung durchaus verstehen und die richtigen Schritte durchführen:        Beginne mit `sum = 0` und addiere nacheinander die Zahlen von 1 bis 6.Beim Programmieren nennt man diese Art von Anweisungen *Schleifen*. In diesem Beispiel definiert man einen *Schleifenzähler*, der in jedem Schritt um 1 hochgezählt und jeweils auf `sum` addiert wird:<jupyter_code>sum := 0

for i:=1; i<=6; i=i+1 {
    sum = sum + i
}
sum<jupyter_output><empty_output><jupyter_text>**Anmerkung:** Hier wird eine Schleife mit Hilfe des Schlüsselworts ```for``` definiert:    for i:=1; i<=6; i++ {Dies ist der *Schleifenkopf*. Er besteht aus drei Teilen, die jeweils mit einem Semikolon voneinander getrennt werden:1. **Init-Statement:** Diese Anweisung wird einmal vor Beginn der Schleife ausgeführt. In unserem Beispiel wird der Zähler definiert und mit 1 initialisiert.2. **Bedingung:** Hier steht die Bedingung, die erfüllt sein muss, damit die Schleife weiterläuft. Im Beispiel darf der Zähler höchstens den Wert 6 haben. `i` größer wird, bricht die Schleife ab.3. **Post-Statement:** Diese Anweisung wird nach jedem einzelnen Durchlauf der Schleife ausgeführt. Im Beispiel wird jeweils `i` um 1 erhöht.Am Ende des Schleifenkopfs steht eine öffnende geschweifte Klammer (`{`). Diese beginnt den Hauptteil der Schleife, den *Schleifenrumpf*. Dies ist der Gesamte Code bis zu passenden schließenden Klammer, also im Beispiel die Zeile    sum = sum + iDieser Code wird in jedem Schleifendurchlauf ausgeführt, bis die Schleifenbedingung nicht mehr erfüllt ist. Im Beispiel wird also zuerst `sum:=0` und `i=1` gesetzt und anschließend so lange abwechselnd die Anweisungen `sum = sum + i` und `i = i + 1` ausgeführt, bis die Bedingung `i<=6` nicht mehr gilt. Am Ende steht dadurch in `sum` die Summe der Zahlen von 1 bis 6.  Beispiel: Schleife ohne Initialisierung und ohne Post-StatementDie Initialisierung und das Post-Statement werden oft verwendet, sind aber nicht unbedingt notwendig. Man kann sie einfach weglassen.Die folgende Schleife berechnet z.B. die erste Zweierpotenz, die 10000 liegt:<jupyter_code>result := 1

for result < 10000 {
    result = result * 2
}
result<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.06689734717416378, 'fraction_numerical': 0.013071895424836602, 'mean_word_length': 5.195238095238095, 'pattern_counts': {'":': 0, '<': 13, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '2', 'dir': 'jupyter-structured-clean-dedup', 'id': '436622', 'license': 'MIT', 'n_tokens_mistral': 906, 'n_tokens_neox': 913, 'n_words': 346, 'path': 'konzepte/02_Schleifen.ipynb', 'repo_name': 'TimonKnuttel/DHBWGrundlagen', 'size': '2601'}