Lade...
 

case

case

case

Stack
Stack Position Beschreibung
Stack(In) Top Wert
Stack(Out) Top -

Mit dieser Anweisung beginnt eine Konstruktion der Form:

case
  S1:       S11 S12 ... S1k
  S2:       S21 S22 ... S2l
  . . .
  Sn:       Sn1 Sn2 ... Snm
  default: Sd1 Sd2 ...
endCase

Die Auswertung entspricht exakt der Ausführung der äquivalenten Anweisungsfolge:

Var(tmp)
-> tmp  // Wert vom Stack-Top
tmp S1 =  // Test 1
if { 
  S11 S12 ... S1k
} else { 
  tmp S2 =  // Test 2
  if { 
    S21 S22 ... S2l 
  }
  . . .
  else { 
    tmp Sn =  // Test n
    if { 
      Sn1 Sn2 ... Snm
    } else { // default
      Sd1 Sd2 ...
    }
  }
}

Für S1 ... Sn müssen Anweisungen stehen, die einen Wert auf den Stack bringen (gewöhnlich Konstanten oder Variable). Diese Werte vergleicht InstantView® mit dem Wert, den 'case' auf dem Stack-Top vorfindet (entspricht = if). Wenn die Testbedingung zum ersten mal erfüllt ist - der i-te Test liefert TRUE - so werden die dazugehörenden Anweisungen Si1, Si2, ... ausgeführt. Ist das Ergebnis aller Tests (Test1, ..., Testn) FALSE, so kommt die Folge Sd1, Sd2 ... zur Ausführung, unabhängig davon, an welcher Position der Default-Zweig angegeben wurde. Der Default-Zweig darf auch fehlen. Vor einem Case-Zweig können mehrere Bedingungen (Case-Label) stehen.

Hinweis:  case-Konstruktionen können bis Tiefe 5 geschachtelt sein.

  Beispiele