Desenvolvimento - C#
Série aprenda C# - Estrutura de Repetição
Neste quinto artigo da Série aprenda C# vamos aprender sobre estrutura de repetição.
por Cleber DantasNo último artigo da série aprenda c# aprendemos sobre estruturas de decisão. Vimos como usar if..else, else..if e switch..case além de vermos também uma forma simplificada de se testar uma expressão através do operador "?" (interrogação).
Para maiores informações veja:
http://www.linhadecodigo.com.br/artigos.asp?id_ac=1160
Introdução
Neste quinto artigo da Série aprenda C# vamos aprender sobre estrutura de repetição. As estruturas de repetição são usadas para controlar a execução de códigos repetidamente até que uma condição seja verdadeira.
Veja os tipos de estrutura de repetição que vamos aprender neste artigo:
- Laço for
- Laço while
- Laço do.. while
- Laço foreach
Laço for
Uma estrutura de repetição é também conhecida como Loop/Laço. O primeiro tipo de loop que vamos estudar é o "for". O loop "for" trabalha checando uma condição para executar um bloco de código até que essa condição seja verdadeira, no caso do loop "for" temos que em sua syntax declarar sua inicialização, sua condição e seu incremento, veja:
for (int i =0; i <= 10; i++) { //instruções }
No código acima temos a syntax de um loop "for" onde na primeira parte declaramos uma variável do tipo inteiro (int) e a inicializamos com o valor 0 (zero), na segunda parte temos a condição nesse caso verifica se a nossa variável recém criada é menor ou igual a 10 e a terceira e ultima parte é o incremento desta variável, sendo essas três partes separadas por ";" (ponto e virgula). O funcionamento é simples todo o código dentro desse bloco do "for" será executado dez vezes. Simples não? Mas você deve ter algumas perguntas em mente como, por exemplo: porque a variável chama "i"? o que é incremento? Vamos as respostas!
Primeiro chama-se "i" por um motivo simples: convenção. "i" vem de índice e isso já se tornou meio que um padrão, mas essa variável pode ter qualquer nome, por exemplo: contador.
Segundo um incremento nada mais é do que adicionar 1 a uma variável, ou seja, se uma variável vale 0 (zero) e passa por um incremento logo essa variável vale 1 e se passa mais uma vez vale 2 e assim por diante. E o que acontece com o decremento é o inverso, ou seja, se uma variável vale 2 e passar por um decremento agora passa a valer 1 e assim por diante.
Respondidas as questões veja um exemplo pratico do loop "for":
for (int i = 0; i < 20; i++) { int res = i * 2; Console.WriteLine(res.ToString()); }
Veja que embora simples mostra bem o funcionamento do "for", neste caso vai mostrar na tela o valor de "i" multiplicado por 2 enquanto "i" for menor que 20.
Laço while
De modo diferente do loop "for" (embora o objetivo seja o mesmo, ou seja, repetir a execução de um código testando uma condição) o loop "while" é mais simples de ser entendido, pois sua syntax não requer que você coloque na mesma linha variável de inicialização, condição e o seu incremento. No loop "while" apenas colocamos a condição que queremos testar, veja como fica a syntax:
while (expressão booleana) { //instruções }
Veja como é simples o código. Expressão booleana é uma expressão que sempre retorna falso ou verdadeiro e a instruções dentro do bloco de código do loop "while" só será executada enquanto essa expressão retornar verdadeiro. Veja um exemplo:
int contador = 2; while (contador != 10) { Console. WriteLine (contador.ToString()); contador++; }
Neste caso temos uma variável chamada contador e seu valor é 2, no nosso loop "while" testamos se a variável contador é diferente de 10 caso verdadeiro mostramos na tela o valor atual de contador e o incrementos em 1 e o loop "while" continuará até que essa condição se torne falsa.
Cuidado: não esqueça de incrementar ou se assegurar que sua condição pode ser falsa em algum momento, pois caso contrario você entrará em um loop infinito, ou seja, a condição nunca será falsa e o loop vai continuar até travar a máquina.
Laço do.. while
Vejamos, porque é que teríamos mais um loop do tipo "while"? Se fossemos analisar com cuidado veríamos que o loop "while" dependendo do caso pode nunca ser executado, ou seja, se a condição do loop "while" retorna falsa de primeira ele nunca vai ser executado. No exemplo acima se atribuíssemos o valor 10 a variável contador em sua declaração o loop "while" nunca começaria. Com o loop "do.. while" o código será executado ao menos uma vez porque nós fazemos a verificação da condição no final da instrução, veja:
do { //instruções } while (expressão booleana)
Podemos traduzir "do" para "faça", ou seja, faça as instruções enquanto (while) expressão seja verdadeira. Assim garantimos que ao menos uma vez nossas instruções serão executadas. Exemplo:
int contador = 10; do { Console.WriteLine (contador.ToString()); } while(contador != 10);
Veja que mesmo contador sendo igual a 10 a instrução será executa ao menos uma vez porque só depois que fazemos a verificação.
Laço foreach
Nós iremos aprender sobre arrays no próximo artigo, mas para mostrar o funcionamento do loop "foreach" tenho que usar um array, explicarei melhor no sobre arrays no próximo artigo.
O loop "foreach" é usado para interagir (percorrer) listas. Ele opera sobre Arrays ou coleções veja sua syntax básica:
foreach(<tipo de dado> <nome> in <lista>) { //instruções }
Veja um exemplo pratico para facilitar o entendimento:
string[] nomes = {"Cleber", "Carol", "Denis", "Roberto"}; foreach (string pessoa in nomes) { Console.WriteLine("{0} ", pessoa); }
Criamos um array de string e colocamos alguns elementos dentro e no nosso loop "foreach" será exibida todos os elementos dentro de nosso array. Veremos mais sobre o "foreach" no próximo artigo que trata de arrays.
Conclusão
Vimos nesse artigo mais um importante tópico para qualquer linguagem de programação as estruturas de repetição, aprendemos sobre os diversos tipos na linguagem C# entre eles: laço for, laço while, laço do.. while e laço foreach. Nó próximo artigo vamos falar sobre arrays e, além disso, você terá um entendimento maior sobre o laço "foreach". Espero que tenham gostado e até o próximo!