O comando if




No início deste curso informamos que usaríamos alguns nomes, comandos ou tipos de dados com os quais você poderia não estar habituado a trabalhar. Em algumas ocasiões, já tivemos oportunidade de usar o comando if ... else sem, contudo, entrar em detalhes sobre o funcionamento do mesmo, exceto por alguma rápida explicação, até mesmo em comentários, que já devem ter lhe dado uma pequena noção acerca do mesmo. Essa é justamente nossa intenção na utilização antecipada dessas instruções. Você vai tendo contato com os comandos e, aos poucos, assimilando sua utilidade e forma de funcionamento. Dessa forma, o estudo deve ser facilitado no momento que tratamos diretamente do assunto, pois, ainda que não se lembre das minúcias, o comando não será algo totalmente estranho para você.


Dentro de cada bloco de códigos, o fluxo de execução de um programa faz com que as linhas sejam executadas na ordem em que aparecem. Por exemplo:


Edit1 -> Text == "";
Edit1 -> SetFocus();


Nestas duas linhas acima, primeiro será esvaziado o Text de Edit1 que depois receberá o foco.


Todavia, é bastante comum um programa precisar quebrar esse fluxo na execução, seguindo por um caminho diferente, deixando de executar determinadas instruções em resposta a certas condições. O comando if permite testar uma condição (por exemplo, se o valor de uma variável booleana é verdadeiro - true) e seguir para uma ou outra parte do código em virtude do resultado desse teste.


Podemos resumir o uso do if da seguinte forma:


if(expressão)


comando;


É mais comum que a expressão avaliada pelo comando if seja do tipo relacional, mas, em princípio, pode ser de qualquer tipo. Feita a avaliação pelo comando, se o resultado da expressão for zero, ela é considerada falsa, e o comando não será executado. Se o valor da expressão for diferente de zero, ela é considerada verdadeira, e o comando será executado.


No exemplo:


void __fastcall TForm1::Button1Click(TObject *Sender)
{
if(Edit1 -> Text == "")
Edit1 -> SetFocus();
}

Quando o usuário der um clique no botão, o foco ira para Edit1 somente se Edit1 estiver vazio.

Também podemos determinar um bloco de comandos entre chaves { }:

//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
        if(Edit1 -> Text == "")
            {
                Edit1 -> Text = "Primeiro Comando deste bloco";
                Label1 -> Caption = "Segundo Comando deste bloco";
                Memo1 -> Lines -> Add("Terceiro Comando e último comando deste bloco");
            }
}

O exemplo a seguir usa um ComboBox, um Label e um Button no Form. Quando o usuário dá um clique no botão, IndexOf() faz uma busca pelo item que contém a string Teste no ComboBox. Se o item é encontrado, o valor numérico do item é atribuído à variável que passará a ter um valor igual ou maior do que zero (zero corresponde ao primeiro item da relação no ComboBox, 1 ao segundo e assim por diante). Feito isso, o programa chama Delete() para apagar o item correspondente à busca. Consecutivamente, o programa informa o valor da variável no Label.

//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
/* Adiciona cabeçalho (texto) e items no 
ComboBox na inicialização do programa*/
ComboBox1 -> Text = "Fatos e Testes";
ComboBox1 -> Items -> Add("Hoje é 22 de julho de 2002");
ComboBox1 -> Items -> Add("Teste");
ComboBox1 -> Items -> Add("Está fazendo um pouco de frio");
ComboBox1 -> Items -> Add("A Marta é professora");
ComboBox1 -> Items -> Add("Ela está trabalhando no Jd. Álamo");

}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
/* declara e inicializa variável iBusc com o número devolvido 
por IndexOf() para o item que contém Teste*/
int iBusc = ComboBox1->Items->IndexOf("Teste");
// se a a busca tiver êxito,  a variável possui valor diferente de -1
if (iBusc > -1)
// chama Delete() para apagar  o item buscado
ComboBox1->Items->Delete(iBusc);

}
//---------------------------------------------------------------------------

anterior

índice

próxima



HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO