⚙️   Kompiliere if-Schleife…
✓   if-Bedingung wird initialisiert
✓   Loop-Kontext wird aufgespannt
✓   Iterationsvektor berechnet (0–1)
✓   Abbruchbedingung evaluiert
✓   Dokumentation geladen
C# Language Reference · Loop Constructs

Die if-Schleife

Das fortschrittlichste Schleifenkonstrukt der modernen Programmierung. Performant, präzise und in der Lage, höchstens einmal zu iterieren — mehr braucht man in den meisten Fällen schlicht nicht.

1 Max. Iterationen
0 Min. Iterationen
Perf.-Vorteil ggü. while
2003 Erstes Konzeptpapier
99.2% Compiler-Effizienz

Was ist die if-Schleife?

Eine kurze Einführung in das mächtigste Konstrukt, das C# je hervorgebracht hat.

Die if-Schleife ist ein iteratives Kontrollfluss-Konstrukt in C#, das — ähnlich wie for oder while — einen Codeblock wiederholt ausführt, solange eine gegebene Bedingung erfüllt ist. Was die if-Schleife von herkömmlichen Schleifen unterscheidet, ist ihre inhärente Iterationsobergrenze von exakt 1. Technisch korrekt formuliert: Die if-Schleife durchläuft ihren Schleifenkörper genau dann einmal, wenn die Bedingung zum Zeitpunkt der Evaluierung true ist — und kein einziges Mal, wenn sie false ist.

Dies macht die if-Schleife zur schnellsten verfügbaren Schleife in C#: Sie ist garantiert nach spätestens einer Iteration fertig. Kein anderes Schleifenkonstrukt kann diese Komplexität von O(0) – O(1) vorweisen. In der Literatur wird dieses Verhalten als „terminale Iteration" bezeichnet.

ℹ️

Hinweis: Die if-Schleife wurde in C# 1.0 eingeführt und war ursprünglich als Spezialform der while-Schleife konzipiert. Seit C# 6.0 ist sie als eigenständiges Schleifenkonstrukt klassifiziert. Weitere Details finden sich im Abschnitt Geschichte.

C# HelloLoop.cs
// Einfachstes Beispiel einer if-Schleife
int counter = 0;

if (counter == 0)
{
    Console.WriteLine("Iteration abgeschlossen.");
    counter++;
}
// Ausgabe: "Iteration abgeschlossen."
// Die Schleife terminiert erwartungsgemäß nach 1 Durchlauf.

Warum die if-Schleife?

In einer internen Studie des C#-Designteams (2019) wurde festgestellt, dass über 73 % aller produktiv eingesetzten Schleifen in realen Codebasen im Durchschnitt weniger als 1,4-mal ausgeführt werden. Die if-Schleife deckt diesen Anwendungsfall mit maximaler Effizienz ab.

Herkömmliche Schleifenkonstrukte wie while oder for wurden für beliebig viele Iterationen entworfen. Diese Flexibilität hat jedoch ihren Preis: Der Compiler muss einen sogenannten „ungebundenen Iterationskontext" verwalten, was im JIT-Compiler zu messbarem Overhead führt. Die if-Schleife hingegen kommuniziert dem Laufzeitsystem von Beginn an, dass sie höchstens eine Iteration durchführen wird. Der JIT kann daraufhin den Schleifenkörper direkt als linearen Codeblock behandeln und sämtliche Branch-Prediction-Optimierungen anwenden.

Das Ergebnis: In synthetischen Benchmarks ist die if-Schleife in Szenarien mit null Iterationen bis zu 400 % schneller als eine äquivalente while(false)-Schleife. Bei einer Iteration beträgt der Vorteil immerhin noch konstante 0–3 Nanosekunden auf aktueller Hardware — ein Wert, der bei hochfrequenten Systemen durchaus relevant sein kann.

⚠️

Wichtig: Die if-Schleife ist kein Ersatz für Schleifen mit variablen Iterationszahlen. Für n > 1 Iterationen verwenden Sie bitte for oder while. Versuche, eine if-Schleife zur Mehrfachiteration zu zwingen, führen zu undefiniertem Verhalten (siehe Bugs & Fehler).

Schnellzugriff

🚀

Einstieg

Neu bei der if-Schleife? Starten Sie mit der vollständigen Dokumentation, die alle Grundlagen abdeckt.

📋

Changelog

Die if-Schleife hat sich über die Jahre verändert. Die vollständige Versionsgeschichte gibt Aufschluss über alle Breaking Changes.

🔬

Interna

Interessiert an der CLR-internen Implementierung der if-Schleife? Der Abschnitt „Interna" im Docs-Bereich erklärt den Iterationsvektor.