Desenvolvimento - Visual Basic .NET

Utilizando Loop em VB.net 2008

Nesse tutorial você aprendera a utilizar os mais diferentes tipos de loops encontrados em VB.net, alem da forma como o mesmo é construido e qual o mais indicado para cada situação.

por Jonas Chaves



Os loops estão sempre presente em nossos códigos, seja qual linguagem utilizemos (C++, VB6, Delphi, PHP etc.). Ele por sua vez é muito importante, pois minimiza nosso trabalho em apenas algumas linhas de código.

Neste artigo estaremos abordando a utilização dos loops, acrescidos de alguns exemplos para melhor assimilação.

O que é loop?

      Loop é uma palavra inglesa, que originalmente significa “aro”, “anel” ou “seqüência”, e que no contexto da língua portuguesa é usada com este último significado.

      Os Loops são usados para agilizar trechos de código em que é necessário ser usado varias repetições. Em programação isso acontece constantemente, seja para preenchermos um componente com os meses do ano, limpar as caixas de texto de um form etc.

     O loop repete a ação até que alguma condição seja verdadeira. Um exemplo simples seria uma rua com 10 carros e apenas uma chave, nesse caso será necessário irmos de carro em carro ate que encontremos a chave que abrira o mesmo.

     Não existe uma regra para o uso de qual loop usar em seus códigos, isto dependera de sua preferência pessoal de codificação.

Tipos de Loop

      A partir desse ponto estaremos utilizando a forma de se trabalhar com Loop, veremos quais os mais utilizados e a forma como os mesmos deverão ser criados.

     

     Ao contrario dos loops Do/Loop While e Do/Loop Until em que a verificação é feita depois que o loop é executado uma vez, o loop Do Until / Loop e Do while / Loop faz a verificação primeiro, isto acontece porque temos a verificação sendo validada antes. Por isso antes de usar um loop é necessário que você tenha plena consciência do que pretende em seu código.

For / Next

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Ano As Integer = Year(Now)

        Dim i As Integer = 0

        For i = 0 To 12

            ComboBox1.Items.Add(Ano + i)

        Next

End Sub

Neste exemplo estamos preenchendo uma combobox com as datas iniciadas com o ano corrente, e indo ate os próximos 12 anos após esta data.

A construção desse loop é feita da seguinte forma:

Dim Variável as integer = 0

For <variável com valor inicial> to <variável com o valor final>

     ............. código ................

Next

Uma segunda maneira de usarmos a variável inicial seria:

For <variável com valor inicial> as <Tipo de Dado> to <variável com o valor final>

     ............. código ................

Next

Onde teríamos o exemplo acima da seguinte forma:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Dim Ano As Integer = Year(Now)

        For i as integer = 0 To 12

            ComboBox1.Items.Add(Ano + i)

        Next

End Sub

Alem de usarmos o For / Next na maioria das vezes dessa forma ele nos disponibiliza o opção step. Por ser opcional muitos não a conhecem; com ela poderiamos ter todos os numeros pares de 0 a 50 sem que seja necessario utilizar o MOD.

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        For i As Integer = 2 To 50 Step 2

            ComboBox1.Items.Add(i)

        Next

End Sub

Poderiamos usar uma variação como por exemplo Step 3 para termos o numero de 3 em 3, Step 4 para os numeros de 4 em 4 e assim por diante.

Caso deseje sair de um loop usando for / next use Exit For:

For i As Integer = 2 To 50

            If i = 20 Then Exit For

            ComboBox1.Items.Add(i)

Next

Do while / Loop

Dim Contador As Integer = 1

Do While Contador <= 600

     ComboBox1.Items.Add(Contador)

     Contador = Contador + 1

Loop

O mesmo será repetido enquanto a variável for menor ou igual a 600 (<= 600).
Se a condição for Falsa e não condizer com a condição que usamos na criação do loop, o mesmo não será executado

Do Until / Loop

Dim Contador As Integer = 1

Do Until Contador > 600

     ComboBox1.Items.Add(Contador)

     Contador = Contador + 1

Loop

Este loop se repete até que a variável Contador exceda a 600.
Note que a estrutura Do Until/Loop não será executada a não ser que a condição seja verdadeira no primeiro teste e assim ate que exceda o limite imposto.

Do / Loop While

Dim Contador As Integer = 1

Do

     ComboBox1.Items.Add(Contador)

     Contador = Contador + 1

Loop While Soma <= 20


O loop se repete enquanto a variável Contador for menor ou igual ao valor imposto (20). Observe que, uma estrutura Do/Loop While sempre é executada uma vez.

Isso acontecera sempre que utilizarmos a verificação no final do loop.

Do / Loop Until

Dim Contador As Integer = 1

Do
     
ComboBox1.Items.Add(Contador)
      Contador = Contador + 1
Loop Until Contador > 20

Este loop se repete até que Contador seja maior que 50. Esta estrutura Do/Loop Until sempre é executada uma vez. Ou seja, se você deseja preencher algum controle com um valor e na primeira verificação  o mesmo não esteja correto, este loop será executado uma vez e só depois fará a verificação da condição imposta.

A construção desse loop é feita da seguinte forma:

Dim Variável as integer = 0

Do

     ............. código ................

Loop Until <Condição>

Jonas Chaves

Jonas Chaves - Formado como técnico em Visual Basic e bacharel em sistemas de informação.
Atua na área de Acessória e Desenvolvimento de software para empresas de diferentes setores, alem de ministrar aulas de Visual Basic 6, ASP, Visual Basic.net 2008 e Segurança em Redes.
Jonas Chaves trabalha atualmente nas linguagens: ASP, Visual Basic 6 e Visual Basic.net 2008.