Ir para conteúdo

Posts Recomendados

Repetição controlada por contagem

O C# nos dá 2 opções de estruturas para repetição controlada por contagem, isto é, a repetição ocorre de um ponto inicial até um ponto final definido antes de as iterações acontecerem, que são o for e o foreach.

 

A diferença entre as duas é bastante simples: o for executa iterações de acordo com um contador e, a cada iteração, altera este contador, enquanto o foreach executa iterações de acordo com a quantidade de objetos em uma coleção.

 

For

http://pastebin.com/XFKkh0nY

O for tem a seguinte sintaxe: "for (<tipo> <variável> = <valor inicial>; <condição para executar>; <ação para cada iteração>)". Assim, podemos concluir que foi usada uma variável inteira i, iniciada em 0, que aumenta em 1 a cada iteração (i++) e o for é executado enquanto i for menor ou igual a 10. Bastante semelhante ao while, neste caso o resultado são 11 linhas com os números de 0 a 10.

 

Foreach

http://pastebin.com/wjhb0A1S

O foreach utiliza uma coleção qualquer, que pode ser um array (como neste caso), uma list ou uma collection. Ele conta automaticamente quantos objetos existem e faz uma iteração por cada, segundo a sintaxe: "foreach (<tipo> <variável> in <coleção>)". Note que não é necessário usar um contador ou uma condição, e o tipo DEVE ser igual ao dos objetos na coleção. O resultado neste caso é semelhante ao exemplo do for acima.

 

Também é possível usar uma coleção com um for, mas é recomendável utilizar o foreach, que é mais seguro e simples:

http://pastebin.com/tKwd6tap

Porém, repare que, como o primeiro item de uma coleção é o de index 0, temos de executar o for enquanto o contador for menor ou igual o comprimento menos 1. Este for é exatamente igual ao exemplo do foreach.

 

É possível fazer usos criativos do for. Você pode, por exemplo, ler arquivos em uma lista e, caso haja um erro, repetir o mesmo arquivo novamente: é possível alterar o contador DURANTE a iteração, assim basta você usar uma estrutura try-catch, diminuir o contador (i--) quando houver um erro e ler a mesma posição da lista novamente! Isso elimina a necessidade de um novo bloco de repetição apenas para tentar ler o arquivo novamente, como no caso do Delphi, que necessitaria de um repeat dentro do for.

 

Há muitos tipos de coleções. Além do array básico, existem arrays multidimensionais (e sim, é possível usar um for dentro de outro!), há listas especializadas e coleções de objetos de diferentes tipos, basta explorar a IDE.

Link para o comentário
https://xtibia.com/forum/topic/202746-repeti%C3%A7%C3%A3o-for-e-foreach/
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...