Exercício – Implementar a instrução foreach
Imagine que você trabalha para uma empresa de manufatura. A empresa precisa que você faça um inventário do depósito para determinar o número de produtos que estão prontos para envio. Além do número total de produtos prontos, é necessário relatar o número de produtos prontos armazenados em cada compartimento individual do depósito e o total acumulado. Esse total acumulado será usado para criar uma trilha de auditoria a fim de verificar novamente o trabalho e identificar qualquer "redução".
Executar um loop em uma matriz usando o foreach
Essa instrução foreach fornece uma maneira simples e limpa de iterar através dos elementos de uma matriz. A instrução foreach processa os elementos da matriz em ordem de índice crescente, começando no índice 0 e terminando no índice Comprimento - 1. Ela usa uma variável temporária para manter o valor do elemento da matriz associado à iteração atual. Cada iteração executará o bloco de código localizado abaixo da declaração foreach.
Confira um exemplo simples:
string[] names = { "Rowena", "Robin", "Bao" };
foreach (string name in names)
{
Console.WriteLine(name);
}
Abaixo da palavra-chave foreach, o bloco de código que contém Console.WriteLine(name); será executado uma vez para cada elemento da matriz names. Como o runtime do .NET executa um loop em cada elemento da matriz, o valor armazenado no elemento atual da matriz names será atribuído à variável temporária name para facilitar o acesso dentro do bloco de código.
Se você executar o código, verá o resultado a seguir.
Rowena
Robin
Bao
Use a instrução foreach para criar uma soma de todos os itens disponíveis em cada compartimento do depósito.
Criar e inicializar uma matriz de int
Verifique se você tem o arquivo Program.cs vazio aberto no Visual Studio Code.
Se necessário, abra o Visual Studio Code e conclua as seguintes etapas para preparar o arquivo Program.cs no Editor:
No menu Arquivo , selecione Abrir Pasta.
Use a caixa de diálogo Abrir Pasta para navegar e, em seguida, abrir a pasta CsharpProjects .
No modo de exibição explorador do Visual Studio Code, selecione Program.cs.
No menu Seleção do Visual Studio Code, selecione Selecionar Tudo e pressione a tecla Delete.
Para criar uma matriz do tipo
intque armazene o número de produtos prontos em cada compartimento, insira o seguinte código:int[] inventory = { 200, 450, 700, 175, 250 };
Adicionar uma instrução foreach para a iteração na matriz
Para criar uma instrução
foreachque faça a iteração por cada elemento da matrizinventory, digite o seguinte código:foreach (int items in inventory) { }Observe que a instrução
foreachatribui temporariamente o valor do elemento da matriz atual a uma variávelintchamadaitems.Verifique se o código corresponde 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
Posicione o cursor na linha de código em branco acima da instrução
foreach.Para declarar uma nova variável que represente a soma de todos os produtos prontos no depósito, insira o seguinte código:
int sum = 0;Certifique-se de declarar a variável fora da
foreachinstrução.Posicione o cursor dentro do bloco de código da instrução
foreach.Para adicionar o valor atual armazenado em
itemsà variávelsum, digite o seguinte código:sum += items;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
Crie uma linha de código em branco abaixo do bloco de código da instrução
foreach.Para relatar a soma final dos itens no estoque, insira o seguinte código:
Console.WriteLine($"We have {sum} items in inventory.");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; } Console.WriteLine($"We have {sum} items in inventory.");No menu Arquivo do Visual Studio Code, clique em Salvar.
No modo de exibição EXPLORER, para abrir um Terminal no local da pasta TestProject, clique com o botão direito do mouse em TestProject e selecione Abrir no Terminal Integrado.
No prompt de comando do terminal, digite dotnet run e pressione Enter.
We have 1775 items in inventory.
Criar uma variável para manter o número do compartimento atual e exibir o total acumulado
Para cumprir o requisito final do projeto de relatório de estoque, crie uma variável que conterá a iteração atual da instrução foreach a fim de permitir a exibição do compartimento e da contagem de itens prontos nele, além do total acumulado de todos os itens de compartimentos contabilizados até agora.
Crie uma linha de código em branco acima da instrução
foreach.Para declarar a variável
intchamadabininicializada para0, insira o seguinte código:int bin = 0;Você usará
binpara armazenar o número do compartimento que tem um estoque sendo processado no momento.Dentro do bloco de código
foreach, para incrementarbina 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. Esse é um atalho parabin = bin + 1.Para relatar o número do compartimento, o número de produtos prontos nele e o total acumulado de produtos prontos, insira o seguinte código dentro do bloco de código
foreach, apósbin++;:Console.WriteLine($"Bin {bin} = {items} items (Running total: {sum})");Esse código usará a variável contadora
bin, a variávelforeachtemporáriaitemse a variávelsumpara relatar o estado atual do estoque em uma mensagem bem formatada.Verifique se o código corresponde 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.");Salve as alterações no arquivo Program.cs e execute o aplicativo.
Você deve 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
Lembre-se dos seguintes tópicos sobre instruções foreach e valores incrementais que você aprendeu nesta unidade:
- Use a instrução
foreachpara iterar em cada elemento de uma matriz, executando o bloco de código associado uma vez para cada elemento da matriz. - A instrução
foreachdefine o valor do elemento atual na matriz como uma variável temporária, que pode ser usada no corpo do bloco de código. - Use o operador de incremento
++para adicionar 1 ao valor atual de uma variável.