/*O comando switch
Existem situações
onde a execução do programa deverá avaliar uma opção entre várias
alternativas. Uma forma de resolvermos essas situações, seria através de
várias estruturas if ... else; outra forma, através do
comando switch() ... case.
Em tais situações, o uso do comando switch() ... case
é, de longe, o mais apropriado pois o uso de vários if
... else pode tornar o
código confuso, sujeito a erros e cansativo de depurar.
O comando switch consiste de um cabeçalho e de um corpo. O cabeçalho é montado com a palavra-chave switch seguida de uma expressão (que
pode ser uma constante ou uma variável) entre parênteses:
switch (expressão)
após o parênteses de fechamento, não
há ponto e vírgula, seguindo-se imediatamente a abertura do corpo do comando
com a chave {.
O corpo do comando consiste de várias opções rotulando a palavra-chave case,
bem como os comandos para os quais será desviado o controle do programa. Via
de regra, essas ações conterão o comando break,
remetendo o processamento do programa para fora do switch (primeira linha de
código após o comando).
Sempre que o comando não encontrar uma opção para processar nos case, a opção
default, caso exista, será processada; se, porém, nesses casos, a opção
default não existir, a execução do programa atravessará o switch sem executar
instrução alguma:
case valor_x:
faz_isso;
break;
case valor_y:
faz_isto;
break;
case valor_z:
faz_aquilo;
break;
default:
faz_outra_coisa;
faz_isso_também;
O exemplo a seguir
leva um Edit no Form. O código está voltado a
impedir a entrada de caracteres não numéricos no Text
do Edit.*/
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include
"Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
bool virgula = true;
//---------------------------------------------------------------------------
__fastcall
TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall
TForm1::Edit1KeyPress(TObject *Sender, char
&Key)
{
if
(virgula == false)
DecimalSeparator
= '\0';
//if(Edit1->Text.Length()
!= DecimalSeparator)
//virgula
= true;
switch(Key)
{
case
'1': Key = '1';
break;
case
'2': Key = '2';
break;
case '3': Key = '3';
break;
case
'4': Key = '4';
break;
case '5': Key = '5';
break;
case
'6': Key = '6';
break;
case
'7': Key = '7';
break;
case
'8': Key = '8';
break;
case '9': Key = '9';
break;
case '0': Key = '0';
break;
case
'.': Key = DecimalSeparator;
virgula = false;
break;
case ',': Key = DecimalSeparator; virgula = false;
break;
case 13: Key = 13;
break;
case
8: Key = 8;
break;
default: Key = '\0';
}
}
//---------------------------------------------------------------------------
|