Pesquisar este blog

segunda-feira, 28 de outubro de 2013

FUNÇÃO E INSTRUÇÃO DE CONTROLE DO FLUXO DE EXECUÇÃO - FOR EACH...NET

For Each...Next


    Instrução empregada para repetir um grupo de instruções para cada elemento de uma coleção ou matriz, utilizando a seguinte sintaxe:

For Each Elemento In Coleção
    [Instruções]
    [Exit For]
    [Instruções]
Next [Element]

Onde,
  • Elemento: argumento obrigatório, é uma variável empregada para interagir com cada elemento da coleção ou matriz;
  • Coleção: argumento obrigatório, indicando o nome da coleção ou matriz a ser percorrida pelo laço For Each...Next;
  • Instruções: argumento opcional, indicando as instruções a serem executadas no interior do laço For..Each...Next;
  • Next: indica o término das instruções a serem executadas no interior do laço For...Each.
São válidas as seguintes considerações para a instrução For Each...Next:
  • Quando a coleção se referenciar a uma matriz, Elemento deverá obrigatoriamente ser uma variável declarada As Variant;
  • Quando Coleção se referenciar a uma coleção de dados fornecida por um objeto, Elemento poderá ser dclarada como As Variant, As Object ou As <TipoDeObjeto>, onde <TipoDeObjeto> é um objeto do mesmo tipo existente em Coleção;
  • As instruções interiores ao laço For Each serão executadas se houver pelo menos um  elemento na Coleção referenciada. Se houverem n-elementos na coleção, o grupo de instruções será executado uma vez para cada elemento, até a ocorrência do último elemento;
  • For Each...Next é útil para se percorrer todos os elementos de coleções que possuem um número indeterminado de elementos, sem que o programador tenha de se preocupar em definir quantos elementos existem na coleção;
  • Para terminar abruptamente um laço For Each...Next, empregue uma ou mais instruções Exit For no interior do laço;
  • Você pode aninhar instruções For Each.Next, desde que o Elemento empregado em cada laço seja unicamente identificável dentro do laço;
  • .Não é possível empregar a instrução For Each...Next em uma matriz de tipos de dados definidos pelo usuário, porque uma variável declarada As Variant não pode conter este tipo de dados.
Exemplo: O exemplo que se segue emprega um laço For Each...Next para percorrer todos os controles de um formulário e tornar visível/Invisível, aqueles cuja propriedade Tag tenha sido definida para “-1” no modo Estrutura do formulário.

Public Sub ExibeCtls(fExibe as boolean)
Dim ctl as Control
  For Each ctl in Me.Controls
         If ctl.Tag = “-1” Then
             Ctl.Visible = fExibe
         End If
   Next
End Sub

Até a Próxima!!

Nenhum comentário:

Postar um comentário