if else - Kekziie/Informatik-II-SS-2017 GitHub Wiki

if

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:

  1. Bedingung (logischer Ausdruck) wird ausgewertet
  2. wenn Bedingung true liefert, so wird der Block { ... } ausgeführt
  3. Funktion des Blocks: Vertauschen der Inhalte von x und y mithilfe einer temporären Variable

Allgemein

bedingte Anweisungen (if-Anweisungen) ermöglichen Fallunterscheidungen und Verzweigungen in Programmen

if (<Bedingung>)
   <Anweisung1>

[optional: else ]

Erläuterung:

  • : boolescher Ausdruck
  • : Anweisung oder Block

Ausführung

  1. Bedingung ausgewertet
  2. Bedingung erfüllt (Auswertung true): folgende Anweisung wird ausgeführt
  3. Bedingung nicht erfüllt: falls vorhanden, else-Zweig wird ausgeführt

Interpretation von else

  • bei geschachtelten Anweisungen ohne Gruppierung wird der else-Zweig immer dem innersten if zugeordnet
  • durch Gruppierungen mit {} kann eine andere Zuordnung erzielt werden

Mehrfachauswahl

Beispiel für 3-fach Auswahl: if () else if () else

durch Zusammensetzung mehrerer else-if-Anweisungen können beliebig viele Unterscheidungen getroffen werden

Wichtig:

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

⚠️ **GitHub.com Fallback** ⚠️