A sintaxe formal da estrutura de controle de fluxo  é:
  Case of
    :(Expressão Booleana)
       instrução(ções)
    :(Expressão Booleana)
       instrução(ções)
       .
       .
       .
 
    :(Expressão Booleana)
       instrução(ções)
    Else
       instrução(ções)
 End case
Observe que a parte Else é opcional, você pode escrever:
  Case of
    :(Expressão Booleana)
       instrução(ções)
    :(Expressão Booleana)
       instrução(ções)
       .
       .
       .
 
    :(Expressão Booleana)
       instrução(ções)
 End case
Assim como a estrutura , a estrutura  também permite que o seu método escolha entre alternativas de ação. Ao contrário da estrutura , a estrutura  pode testar um número ilimitado de expressões booleanas e agir, dependendo de qual delas seja VERDADEIRA.
 Cada expressão booleana é antecedida por dois pontos (:). Esta combinação de dois pontos e a expressão booleana é chamado de caso. Por exemplo, a linha a seguir é um caso:
 :(bValidar=1)
Apenas as declarações seguintes do primeiro caso TRUE (e até o próximo caso) será executada. Se nenhum dos casos for VERDADEIRO, nenhuma das declarações será executada (se o Else não estiver incluído). 
 Você pode incluir uma declaração Else após o último caso. Se todos os casos são FALSOS, a declaração Else será executada.
Este exemplo testa uma variável numérica e exibe uma caixa de alerta com uma palavra nela: 
 Case of
    :(vResult=1) 
       ALERT("um.") 
    :(vResult=2) 
       ALERT("dois.") 
    :(vResult=3) 
       ALERT("três.") 
    Else 
       ALERT("Não foi um, nem dois, nem três.")
 End case
Para efeito de comparação, aqui é a versão  do mesmo método:
  If(vResult=1) 
    ALERT("Uno.") 
 Else
    If(vResult=2) 
       ALERT("Dos.") 
    Else
       If(vResult=3) 
          ALERT("Tres.") 
       Else 
          ALERT("Não foi um, nem dois, nem três.")
       End if
    End if
 End if
Lembre-se que com uma estrutura Case of...Else...End case, apenas o primeiro caso TRUE é executado. Mesmo que dois ou mais casos sejam verdadeiros, apenas as instruções seguintes ao primeiro caso TRUE será executada.
 Conseqüentemente, quando você deseja implementar testes hierárquico, deve certificar-se das declarações desde que sejam menores no esquema hierárquico aparecem primeiro na sequência do teste. Por exemplo, o teste para a presença da condition1 abrange o teste para a presença de condition1 & condition2 e deve ser localizado passado a sequência do teste. Por exemplo, o seguinte código nunca irá ver a sua última condição detectada:
  Case of
    :(vResult=1)
       ... 
    :((vResult=1) & (vCondição#2)) 
       ... 
 End case
 .
No código acima, a presença do segundo requisito não é detectada já que o teste vResult = "1" é detectado antes de qualquer teste adicional. Para o código funcionar corretamente, você pode escrever como a seguir:
  Case of
    :((vResult=1) & (vCondição#2)) 
       ... 
    :(vResult=1)
       ... 
 End case
 .
Além disso, se você quiser implementar testes hierárquicos, você pode considerar o uso de código hierárquico. 
 Conselho: Um teste condicional pode ser realizado sem instruções a serem executadas em um caso ou outro. Ao desenvolver um algoritmo ou uma aplicação especializada, nada o impede de escrever: 
  Case of
    :(Expressão_Booleana)
    :(Expressão_Booleana)
 
       .
       .
       .
 
    :(Expressão_Booleana)
       instrução(ções)
    Else
       instrução(ções)
 End case
ou:
  Case of
    :(Expressão_Booleana)
    :(Expressão_Booleana)
       instrução(ções)
       .
       .
       .
 
    :(Expressão_Booleana)
       instrução(ções)
    Else
 End case
ou:
  Case of
    Else
       instrução(ções)
 End case