if else - Kekziie/Informatik-II-SS-2017 GitHub Wiki
Auswahlanweisungen führen zur Trennung des Programmflusses in alternative Pfade unterschiedlicher Anweisungen
Entscheidung zwischen zwei Alternativen
if (<boolean-expression>)
<statement>
else
<statement>
einfache Verzweigung (bei Erfüllung: Ausführung des Kommandos, sonst: nichts)
if (<boolean-expression>)
<statement>
Entscheidung mit zwei Alternativen mit Blöcken
if (<boolean-expression>)
{ <statements> }
else
{ <statements> }
einfache Verzweigung mit Blöcken
if (<boolean-expression>)
{ <statements> }
Beispiel: Werte zweier Variablen (x,y) werden vertauscht wenn der Wert von x größer ist als y
if ( x > y )
{
int temp; // temporaere Variable als Zwischenablage
temp = x; // speichere Kopie von x
x = y; // kopiere y nach x
y = temp; // kopiere temp nach y
}
Erklärung des Beispiels:
- Bedingung (logischer Ausdruck) wird ausgewertet
- wenn Bedingung true liefert, so wird der Block { ... } ausgeführt
- Funktion des Blocks: Vertauschen der Inhalte von x und y mithilfe einer temporären Variable
bedingte Anweisungen (if-Anweisungen) ermöglichen Fallunterscheidungen und Verzweigungen in Programmen
if (<Bedingung>)
<Anweisung1>
[optional: else ]
Erläuterung:
- : boolescher Ausdruck
- : Anweisung oder Block
- Bedingung ausgewertet
- Bedingung erfüllt (Auswertung true): folgende Anweisung wird ausgeführt
- Bedingung nicht erfüllt: falls vorhanden, else-Zweig wird ausgeführt
- bei geschachtelten Anweisungen ohne Gruppierung wird der else-Zweig immer dem innersten if zugeordnet
- durch Gruppierungen mit {} kann eine andere Zuordnung erzielt werden
Beispiel für 3-fach Auswahl: if () else if () else
durch Zusammensetzung mehrerer else-if-Anweisungen können beliebig viele Unterscheidungen getroffen werden
Es wird eine Bedingung nach der anderen ausgewertet, bis ein boolescher Ausdruck true liefert, die zugehörige Anweisung wird danach ausgeführt und die restlichen Bedingungen werden übersprungen