TOC

This article has been localized into Portuguese by the community.

Estruturas de controle:

Loops

Outra técnica essencial ao escrever software é o loop - a capacidade de repetir um bloco de código X vezes. Em C#, eles vêm em 4 variantes diferentes, e vamos dar uma olhada em cada um deles.

O loop while

O loop while é provavelmente o mais simples, então vamos começar com isso. O loop while simplesmente executa um bloco de código, desde que a condição dada seja verdadeira. Um pequeno exemplo e mais algumas explicações:

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = 0;

            while(number < 5)
            {
                Console.WriteLine(number);
                number = number + 1;
            }

            Console.ReadLine();
        }
    }
}

Tente executar o código. Você obterá uma boa lista de números, de 0 a 4. O número é definido primeiro como 0, e cada vez que o código no loop é executado, é incrementado em um. Mas por que só chega a 4, quando o código diz 5? Para que a condição retorne true, o número deve ser menor que 5, o que neste caso significa que o código que gera o número não é alcançado uma vez que o número é igual a 5. Isso ocorre porque a condição do loop while é avaliada antes de entrar no bloco de código.

O laço

O oposto é verdadeiro para o loop, que funciona como o laço while em outros aspectos. O loop faz avaliar a condição após o loop ter sido executado, o que garante que o bloco de código seja sempre executado pelo menos uma vez.

int number = 0;
do  
{  
    Console.WriteLine(number);  
    number = number + 1;  
} while(number < 5);

A saída é a mesma - embora o número seja maior que 5, o loop é encerrado.

O loop for

O loop for é um pouco diferente. É preferível quando você sabe quantas iterações deseja, porque você sabe a quantidade exata de iterações ou porque você tem uma variável contendo a quantidade. Aqui está um exemplo do loop for.

using System;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int number = 5;

            for(int i = 0; i < number; i++)
                Console.WriteLine(i);

            Console.ReadLine();
        }
    }
}

Isso produz exatamente a mesma saída, mas como você pode ver, o loop for é um pouco mais compacto. Ele consiste de 3 partes - nós inicializamos uma variável para contar, configuramos uma instrução condicional para testá-la e incrementamos o contador (++ significa o mesmo que "variável = variável + 1").

A primeira parte, onde definimos a variável i e a definimos como 0, é executada apenas uma vez antes do início do loop. As últimas duas partes são executadas para cada iteração do loop. Cada vez, i é comparado com a variável numérica - se i for menor que number, o loop é executado mais uma vez. Depois disso, eu é aumentado em um.

Tente executar o programa e, depois, tente alterar a variável numérica para algo maior ou menor que 5. Você verá o loop responder à mudança.

O loop foreach

O último loop que veremos é o loop foreach. Ele opera em coleções de itens, por exemplo, matrizes ou outros tipos de lista internos. Em nosso exemplo, usaremos uma das listas simples, chamada ArrayList. Funciona muito como uma matriz, mas não se preocupe, vamos analisá-lo em um capítulo posterior.

using System;
using System.Collections;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {            
            ArrayList list = new ArrayList();
            list.Add("John Doe");
            list.Add("Jane Doe");
            list.Add("Someone Else");
           
            foreach(string name in list)
                Console.WriteLine(name);

            Console.ReadLine();
        }
    }
}

Ok, então criamos uma instância de um ArrayList e, em seguida, adicionamos alguns itens de string a ele. Usamos o loop foreach para percorrer cada item, configurando a variável de nome para o item que alcançamos a cada vez. Dessa forma, temos uma variável nomeada para saída. Como você pode ver, nós declaramos a variável name como sendo do tipo string - você sempre precisa dizer ao loop foreach qual tipo de dado você espera extrair da coleção. Caso você tenha uma lista de vários tipos, você pode usar a classe de objeto em vez de uma classe específica para extrair cada item como um objeto.

Ao trabalhar com coleções, é muito provável que você esteja usando o loop foreach na maioria das vezes, principalmente porque é mais simples do que qualquer outro loop para esse tipo de operação.

This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!