if ...else - Continuação
O comando if ... else comporta em seu interior quaisquer outros comandos, incluindo combinações else if, if ... else:
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(StrToInt(Edit1 -> Text) >= StrToInt(Edit2 -> Text))
{
if((StrToInt(Edit1 -> Text) % StrToInt(Edit2 -> Text)) == 0)
{
if(StrToInt(Edit1 -> Text) == StrToInt(Edit2 -> Text))
Label1 -> Caption = "O número de Edit1 é igual ao de Edit2!!!";
else
Label1 -> Caption = "O número de Edit1 é multiplo do de Edit2";
}
else
Label1 -> Caption = "O número de Edit1 não é múltiplo do de Edit2";
}
else
Label1 -> Caption = "O número de Edit2 é maior que o de Edit1";
}
//---------------------------------------------------------------------------Nota: O comando else nem sempre estará associado ao comando if mais recente. Um comando if contido com todas as suas instruções num bloco de chaves {} deverá remeter o else (fora desse bloco) para o if antecedente. Um bloco de código, em virtude de "pequenas" alterações, poderá apresentar resultados totalmente diferentes. Por exemplo:
//-----------------------------------------------------------------------------
int x = 45, y = 200, z = 10;
if (x == 1)
{ // início do bloco
if (y == 200)
z = y - x;
} //fim do bloco sem else
else // a instrução desse comando será aplicada se x for diferente de 1
z = y + x;
Label1->Caption = z; /*Resultado: z = 245, pois o comando else, em virtude das chaves {},
está relacionado com o primeiro if, cuja condição é falsa, porque x é diferente de 1 */
//------------------------------------------------------------------------------
int x = 45, y = 200, z = 10;
if (x == 1); //o ponto e vírgula faz a diferença. Não existe instrução para essa condição
if (y == 200)
z = y - x; // Ok. y é igual a 200
else
z = y + x; // essa instrução seria aplicada se y fosse diferente de 200
Label1->Caption = z; /*Resultado: z = 155, porque o primeiro if não é levado em
consideração em virtude do ponto e vírgula que deixa a instrução deste comando vazia */
//------------------------------------------------------------------------------
int x = 45, y = 200, z = 10;
if (x == 1)
if (y == 200)
z = y - x;
else
z = y + x;
Label1->Caption = z; /*Resultado: z = 10, pois o programa avalia as duas condições e não
encontra uma opção (um segundo else) para o fato de a primeira condição ser falsa */
//------------------------------------------------------------------------------
int x = 45, y = 200, z = 10;
if (x == 1)
if (y == 200)
z = y - x;
else
z = y + x;
else
z = 300;
Label1 -> Caption = z; /* Resultado: z = 300, pois esse segundo else vai de encontro
com o fato de a primeira condição ser falsa */
//------------------------------------------------------------------------------
int x = 45, y = 200, z = 10;
if (x == 45)
if (y == 200)
z = y - x;
else
z = y + x;
Label1 -> Caption = z; // Resultado: z = 155, porque as duas condições são verdadeiras.
//------------------------------------------------------------------------------
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |