1
resposta

Duvida

Olá. Tentei me desafiar adicionando o nome do produto. Para não ter muitos if optei pelo switch, porem achei um pouco bagunçado. Creio que para ficar mais estruturado teria que criar um dicionário ou uma lista. Minha duvida é: Caso eu crie um dicionário, teria que criar void(s) para cada item?

int adicionarProduto;
string nomeDoProduto;
int quantidade, estoque = 0;

do
{
Console.WriteLine("Deseja adicionar um produto ao estoque? ");
Console.Write("\n1 - Sim | 0 - Não: ");
adicionarProduto = int.Parse(Console.ReadLine()!);

switch(adicionarProduto)
{
    case 1:
        Console.Clear();
        Console.Write("Nome do produto: "); 
        nomeDoProduto = Console.ReadLine()!;
        Console.Write("Quantidade: ");
        quantidade = int.Parse(Console.ReadLine()!);
        estoque += quantidade;
        Console.Clear();
        Console.WriteLine($"Nome do produto:{nomeDoProduto}\nQuantidade em estoque: {estoque}");
        break;
    case 0:
        Console.WriteLine("Obrigado por usar nosso sistema de estoque!");
        break;        
    default:
        Console.WriteLine("Opção invalida!");
        break;

    
}

}while(adicionarProduto != 0);

1 resposta

Olá Edla! Como vai?

Que legal que você está se desafiando e pensando em maneiras de melhorar o seu código! Utilizar um dicionário pode ser uma ótima ideia para gerenciar produtos e suas quantidades de forma mais organizada. Com um dicionário, você pode associar o nome do produto à sua quantidade em estoque, o que elimina a necessidade de múltiplos if ou switch para cada produto.

Aqui está um exemplo de como você poderia implementar isso:

using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        Dictionary<string, int> estoque = new Dictionary<string, int>();
        int adicionarProduto;
        
        do
        {
            Console.WriteLine("Deseja adicionar um produto ao estoque? ");
            Console.Write("\n1 - Sim | 0 - Não: ");
            adicionarProduto = int.Parse(Console.ReadLine()!);

            switch (adicionarProduto)
            {
                case 1:
                    Console.Clear();
                    Console.Write("Nome do produto: ");
                    string nomeDoProduto = Console.ReadLine()!;
                    Console.Write("Quantidade: ");
                    int quantidade = int.Parse(Console.ReadLine()!);

                    if (estoque.ContainsKey(nomeDoProduto))
                    {
                        estoque[nomeDoProduto] += quantidade;
                    }
                    else
                    {
                        estoque[nomeDoProduto] = quantidade;
                    }

                    Console.Clear();
                    Console.WriteLine($"Nome do produto: {nomeDoProduto}\nQuantidade em estoque: {estoque[nomeDoProduto]}");
                    break;
                case 0:
                    Console.WriteLine("Obrigado por usar nosso sistema de estoque!");
                    break;
                default:
                    Console.WriteLine("Opção inválida!");
                    break;
            }
        } while (adicionarProduto != 0);
    }
}

Nesse exemplo, utilizamos um Dictionary<string, int> para armazenar o nome do produto como chave e a quantidade como valor. Assim, você não precisa criar métodos separados para cada produto. O código verifica se o produto já existe no dicionário e, se sim, incrementa a quantidade; caso contrário, adiciona o novo produto com a quantidade informada.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.