Exercício - Implementar a instrução foreach

Concluído

Suponha que você trabalhe para uma empresa de manufatura. A empresa precisa que você complete um inventário do seu armazém para determinar o número de produtos que estão prontos para envio. Além do número total de produtos acabados, você precisa informar o número de produtos acabados armazenados em cada compartimento individual em seu armazém, juntamente com um total em execução. Esse total de execução será usado para criar uma trilha de auditoria para que você possa verificar novamente seu trabalho e identificar "encolhimento".

Percorrer uma matriz através de um ciclo ao utilizar a instrução foreach

A foreach instrução fornece uma maneira simples e limpa de iterar através dos elementos de uma matriz. A foreach instrução processa elementos de matriz em ordem de índice crescente, começando com o índice 0 e terminando com o comprimento do índice - 1. Ele usa uma variável temporária para manter o valor do elemento de matriz associado à iteração atual. Cada iteração executará o bloco de código localizado abaixo da foreach declaração.

Eis um exemplo simples:

string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
    Console.WriteLine(name);
}

Por baixo da palavra-chave foreach, o bloco de código que contém o método Console.WriteLine(name); será executado uma vez para cada elemento da matriz names. À medida que o runtime do .NET percorre cada elemento da matriz através de um ciclo, o valor armazenado no elemento atual da matriz names é atribuído à variável temporária name para um fácil acesso dentro do bloco de código.

Se você executasse o código, veria o seguinte resultado.

Rowena
Robin
Bao

Use a foreach instrução para criar uma soma de todos os itens disponíveis em cada compartimento do seu armazém.

Criar e inicializar uma matriz de int

  1. Verifique se você tem um arquivo de Program.cs vazio aberto no Visual Studio Code.

    Se necessário, abra o Visual Studio Code e conclua as seguintes etapas para preparar um arquivo de Program.cs no Editor:

    1. No menu Arquivo , selecione Abrir pasta.

    2. Use a caixa de diálogo Abrir pasta para navegar até a pasta CsharpProjects e abri-la.

    3. No modo de exibição Visual Studio Code EXPLORER, selecione Program.cs.

    4. No menu Seleção de código do Visual Studio, selecione Selecionar tudo e pressione a tecla Delete.

  2. Para criar uma matriz do tipo int que armazena o número de produtos acabados em cada compartimento, insira o seguinte código:

    int[] inventory = { 200, 450, 700, 175, 250 };
    

Adicionar uma instrução foreach para iterar através da matriz

  1. Para criar uma foreach instrução que itera através de cada elemento da inventory matriz, digite o seguinte código:

    foreach (int items in inventory)
    {
    
    }
    

    Observe que a foreach instrução atribui temporariamente o valor do elemento de matriz atual a uma int variável chamada items.

  2. Certifique-se de que seu código corresponda ao seguinte:

    int[] inventory = { 200, 450, 700, 175, 250 };
    
    foreach (int items in inventory)
    {
    
    }
    

Adicionar uma variável para somar o valor de cada elemento na matriz

  1. Posicione o cursor na linha de código em branco acima da foreach instrução.

  2. Para declarar uma nova variável que represente a soma de todos os produtos acabados em seu depósito, insira o seguinte código:

    int sum = 0;
    

    Certifique-se de declarar a variável fora da foreach instrução.

  3. Posicione o cursor dentro do bloco de código da foreach instrução.

  4. Para adicionar o valor atual armazenado à itemssum variável, digite o seguinte código:

    sum += items;
    
  5. Verifique se o código corresponde ao seguinte:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    foreach (int items in inventory)
    {
        sum += items;
    }
    

Exibir o valor final da soma

  1. Crie uma linha de código em branco abaixo do bloco de código da foreach instrução.

  2. Para relatar a soma final dos itens em seu inventário, insira o seguinte código:

    Console.WriteLine($"We have {sum} items in inventory.");
    
  3. Certifique-se de que seu código corresponda ao seguinte:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    foreach (int items in inventory)
    {
        sum += items;
    }
    
    Console.WriteLine($"We have {sum} items in inventory.");
    
  4. No menu "Arquivo" do Visual Studio Code, clique em "Salvar".

  5. Na vista EXPLORER, para abrir um Terminal na localização da pasta TestProject, clique com o botão direito do rato em TestProject e, em seguida, selecione Abrir no Terminal Integrado.

  6. No prompt de comando do Terminal, digite dotnet run e pressione Enter.

    We have 1775 items in inventory.
    

Crie uma variável para manter o número do compartimento atual e exibir o total em execução

Para cumprir o requisito final do seu projeto de relatório de inventário, você precisará criar uma variável que manterá a foreach iteração atual da instrução para que você possa exibir o compartimento e a contagem de itens concluídos nesse compartimento, juntamente com o total de execução de todos os itens de compartimentos contabilizados até agora.

  1. Crie uma linha de código em branco acima da foreach instrução.

  2. Para declarar int a variável nomeada bin que foi inicializada para 0, insira o seguinte código:

    int bin = 0;
    

    Você usará bin para armazenar o número do compartimento cujo estoque está sendo processado no momento.

  3. Dentro do bloco de código, para incrementar foreachbin cada vez que o bloco de código for executado, insira o seguinte código:

    bin++;
    

    Observe que você usa o ++ operador para incrementar o valor da variável em 1. Este é um atalho para bin = bin + 1.

  4. Para comunicar o número do contentor, o número de produtos acabados no contentor e o total de produtos acabados em funcionamento, introduza o seguinte código dentro do foreach bloco de código, após bin++;:

    Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
    

    Esse código usará sua variável binde contador, a variável foreachtemporária items e sua sum variável para relatar o estado atual do seu inventário em uma mensagem bem formatada.

  5. Certifique-se de que seu código corresponda ao seguinte:

    int[] inventory = { 200, 450, 700, 175, 250 };
    int sum = 0;
    int bin = 0;
    foreach (int items in inventory)
    {
        sum += items;
        bin++;
        Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");
    }
    Console.WriteLine($"We have {sum} items in inventory.");
    
  6. Salve as alterações no arquivo Program.cs e execute o aplicativo.

    Deverá ver o seguinte resultado:

    Bin 1 = 200 items (Running total: 200)
    Bin 2 = 450 items (Running total: 650)
    Bin 3 = 700 items (Running total: 1350)
    Bin 4 = 175 items (Running total: 1525)
    Bin 5 = 250 items (Running total: 1775)
    We have 1775 items in inventory.
    

Recapitulação

Aqui estão algumas coisas para lembrar sobre foreach declarações e incremento de valores que você aprendeu nesta unidade:

  • Utilize a instrução foreach para iterar cada elemento numa matriz, ao executar o bloco de código associado uma vez para cada elemento na matriz.
  • A instrução foreach define o valor do elemento atual na matriz como uma variável temporária que pode utilizar no corpo do bloco de código.
  • Utilize o operador de incremento ++ para adicionar 1 ao valor atual de uma variável.