Lade...
 

Case Beispiel

Eine Definition für x!

Define(Fak) Dup case 0: 1: Drop 1 default: Dup 1 - Fak * endCase ;

Auswahlkriterium können nicht nur ganzzahlige Werte, sondern auch Zeichenketten oder Objekte sein; in letzterem Falle bestimmt das Objekt die Semantik des Vergleichs (wie bei =). Im Gegensatz zu 'switch' bei C/C++ müssen die Case-Label nicht unbedingt konstante Werte liefern. Im folgenden Beispiel wird ausgezählt, wieviel Objekte einer Klasse CX_PERSON mit bestimmten, interaktiv eingegebenen Namen existieren:

Var(n0, n1, n2, n3) Define(CountNames) Copy(name) case GetValue(, name1): Incr(n1) n1 PutValue(, count1) GetValue(, name2): Incr(n2) n2 PutValue(, count2) GetValue(, name3): Incr(n3) n3 PutValue(, count3) default: Incr(n0) n0 PutValue(, count0) endCase ; Button( . . . ) [ SELECT: 0 -> n0 0 -> n1 0 -> n2 0 -> n3 FindAll(CX_PERSON) Iterate(CountNames) ]