Existe uma instrução semelhante Exit For
, exceto que em vez de sair do loop, ela apenas se move para o próximo item.
Por exemplo:
For Each I As Item In Items
If I = x Then
' Move to next item
End If
' Do something
Next
Eu sei que poderia simplesmente adicionar um Else
à instrução If para que fosse lido da seguinte forma:
For Each I As Item In Items
If I = x Then
' Move to next item
Else
' Do something
End If
Next
Gostaria de saber se há uma maneira de pular para o próximo item da Items
lista. Tenho certeza de que a maioria estará perguntando por que não apenas usar a Else
instrução, mas, para mim, embrulhar o código "Do Something" parece ser menos legível. Especialmente quando há muito mais código.
If
declaração corretamente. É enganoso.Eu usaria a
Continue
declaração em vez disso:Observe que isso é ligeiramente diferente de mover o próprio iterador - qualquer coisa antes de
If
será executado novamente. Normalmente é isso que você deseja, mas se não, você terá que usarGetEnumerator()
e entãoMoveNext()
/Current
explicitamente ao invés de usar umFor Each
loop.fonte
A respeito:
fonte
Quero deixar claro que o código a seguir não é uma boa prática. Você pode usar o rótulo GOTO:
fonte
Quando tentei
Continue For
com falha, recebi um erro do compilador. Enquanto fazia isso, descobri 'Resume':Observação: estou usando o VBA aqui.
fonte
Resume Next
é para tratamento de erros não estruturados.If I <> x Then
Apenas o "Continue For" é um padrão aceitável (o resto leva ao "código spaghetti").
Pelo menos com "continue for" o programador sabe que o código vai diretamente para o topo do loop.
Para os puristas, porém, algo assim é melhor, pois é um código puro "não espaguete".
Para facilitar a codificação, porém, "Continue For" está OK. (É uma boa ideia comentar isso).
Usando "Continuar para"
fonte