Clube VB - Estruturas de Repetição

Aula 14

Um dos procedimentos mais comuns em sistemas comerciais é a repetição por um determinado número de vezes de um grupo de comandos, ou seja, uma estrutura de repetição. Para tais situações, o VB oferece comandos próprios. Iremos começar neste módulo o estudo destes comandos.

As estruturas de repetição também são conhecidas como Loops

O loop mais comum na maioria das linguagens de programação é o For...Next. Este tipo de Loop é utilizado para criar um contador de forma automática e, a cada vez que o contador é incrementado, os comandos que estão dentro deste Loop são novamente executados. A seguir veja a sintaxe deste comando:

For Contador = número_inicial to número_final
          ..... lista de comandos
Next

Para melhor exemplificar este comando, vamos a seguir gerar um projeto de exemplo com esta finalidade. O projeto terá duas caixas de edição, sendo que a primeira irá representar o número inicial da contagem e a segunda o número final da contagem e a cada número incrementado, este será apresentado dentro de um ListBox. Veja a seguir passo a passo a nossa aplicação:

  • Inicie um novo projeto no VB;

  • No formulário que é apresentado, adicione:

2 Labels;
2 TextBox;
1 ListBox;
2 CommandButton.

  • Altere as seguintes propriedades dos componentes citados:

Componente Propriedade/Valor
Label1 Caption = Número inicial
Label2 Caption = Número final
Command1 Caption = Inicia contagem
Text1 Text = apague o conteúdo desta propriedade
Text2 Text = apague o conteúdo desta propriedade
  • Neste ponto, seu formulário terá o seguinte aspecto:

  • Quando o usuário for utilizar o sistema, ele irá entrar com um valor para o número inicial da contagem e um valor para o número final da contagem. Após clicar no botão "inicia contagem", o sistema irá gerar um Loop, de x (número inicial) até y (número final) e, a cada número da contagem, este será acrescentado ao ListBox. Para tal procedimento, iremos entrar com a seguinte codificação para o botão "Inicia Contagem":

Private Sub Command1_Click()
numi = Val(Text1.Text)
numf = Val(Text2.Text)
For contador = numi To numf
List1.AddItem (Str(contador))
Next
End Sub

  • Observe que, o primeiro passo foi armazenar nas variáveis NUMI e NUMF o conteúdo digitado nas caixas Text1 e Text2, porém este conteúdo foi transformado em valor numérico através da função VAL. Em seguida, criamos um contador (loop), que irá contar de NUMI (número inicial) até NUMF (número final), armazenando esta contagem na variável contador e, a cada número contado, o único comando existente entre o FOR e o NEXT será executado, ou seja, no listbox (LIST1), iremos adicionar um item (additem) que é o valor da variável contador (que faz parte do loop), transformada em String, através da função STR.

  • Para o botão Finaliza, basta acrescentar o comando END, conforme podemos observar na listagem a seguir:

Private Sub Command2_Click()
End
End Sub

Agora, execute o projeto e, insira dois números (inicial e final) e veja o resultado após clicar no respectivo botão. No exemplo abaixo, preenchemos como número inicial 3 e número final 6. Observe o resultado:

Agora, execute novamente o projeto, inserindo em número inicial um número menor do que em número final e observe o resultado. Você verá que nada foi acrescentado ao ListBox, porque da forma como o For...Next foi construído, a contagem será realizada em de forma crescente, ou seja, sempre de um número menor para um número maior. Mas e se fosse necessário a contagem de um número maior para um número menor, com incrementos de -1 unidade. Sendo assim, teríamos que acrescentar o comando STEP e após este o incremento, que neste caso seria -1. Veja como ficaria a codificação deste botão neste caso:

Private Sub Command1_Click()
numi = Val(Text1.Text)
numf = Val(Text2.Text)
For contador = numi To numf Step -1
List1.AddItem (Str(contador))
Next
End Sub

Ok, aprendemos a gerar contadores de forma crescente e decrescente. Mas você deve estar perguntando: como fazer para que o sistema verifique de forma automática se a contagem será progressiva ou regressiva?

Esta resposta será fornecida em nossa próxima aula. Salve o projeto para que possamos realizar esta alteração no módulo 15.

 

 

Voltar

Principal | Cursos Gratuitos | Cursos Diversos | Dicas | Promoções | Mapa do Site | QUIZ |
| Classificados | Central Currículo | Fórum | Fale Conosco