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);
}
//---------------------------------------------------------------------------
|
HOME || MAPA DO SITE || CURSOS || TUTORIAIS || LINKS || FORUM || CONTATO |