Desvio Condicional com "case... of..."
A instrução case... of... é semelhante a if... then... else if... then..., ela procura a condição verdadeira, a diferença básica entre essas duas instruções é que no case... of... a condição a ser analisada não pode ser do tipo string.
Sintaxe:
case variável of
condição_1: {bloco de comandos da condição 1}
condição_2: {bloco de comandos da condição 2}
...
condição_n: {bloco de comandos da condição n}
end;
begin
{ ... comandos iniciais ... }
case x of
1: { ... bloco da condição 1 ... }
2: { ... bloco da condição 2 ... }
...
n: { ... bloco da condição n ... }
end;
{ ... comandos finais ... }
end;
Em um novo projeto insira um SpinEdit(aba Samples), um Button e configure:
|
|||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Figura 1 – Projeto CaseOf
No evento OnClick do componente BtnConferir digite o código em negrito:
01 |
procedure TForm1.BtnConferirClick(Sender: TObject); |
02 |
var |
03 |
valor: Integer; |
04 |
begin |
05 |
valor := SEdValor.Value; |
06 |
case valor of |
07 |
1: ShowMessage('O valor é igual a 1'); |
08 |
2: ShowMessage('O valor é igual a 2'); |
09 |
3..9: ShowMessage('O valor está entre 3 e 9'); |
10 |
10: ShowMessage('O valor é igual a 10'); |
11 |
end; |
12 |
ShowMessage('Comandos Finais'); |
13 |
end; |
O SpinEdit é uma caixa de texto que só aceita um valor do tipo inteiro, a direita ele tem setas para incrementa ou decrementa o valor atual da propriedade Value.
A linha 06 informa que a instrução irá avaliar a variável Valor. Caso esse valor seja 1 ele mostra o comando da linha 07, se for 02 mostra o comando da linha 08, mas se o valor estiver entre 3 e 9(incluído-os) ele executará a linha 09, por fim se o valor for 10 a linha 10 será executada.
Observação |
Nesse caso suprimimos o begin e end pois o bloco de comandos possui apenas uma linha, caso o bloco de comando possua mais de uma linha seria necessário usar o begin e end com ponto-e-vírgula. |