1
resposta

[Projeto] Controle de estoques

Resolução com do while:


int quantidade;
int estoque = 0;
int resposta;

void ExibirTitulo(string titulo)
{
    int totalLetras = titulo.Length;
    string asterisco = string.Empty.PadLeft(totalLetras, '*');
    Console.WriteLine(asterisco);
    Console.WriteLine(titulo);
    Console.WriteLine(asterisco);
}


ExibirTitulo("Bem vindo a loja de eletrônicos!!!");

Console.WriteLine("\nDeseja adicionar um produto ao estoque? ");
Console.WriteLine("1 - Sim | 0 - Não\n");

resposta = int.Parse(Console.ReadLine()!);

if (resposta == 1)
{
    do
    {
        Console.WriteLine("\nQuantidade: ");
        quantidade = int.Parse(Console.ReadLine()!);
        estoque += quantidade;
        Console.WriteLine($"Estoque atual: {estoque}");

        Console.WriteLine("\nDeseja continuar? ");
        Console.WriteLine("1 - Sim | 0 - Não");
        int resposta2 = int.Parse(Console.ReadLine()!);

        if (resposta2 == 1)
        {
            continue;
        }
        else if (resposta2 == 0)
        {
            break;
        }
        else
        {
            Console.WriteLine("\nOpção inválida!");
        }
        Console.Clear();

    } while (resposta != 0);
    Console.WriteLine("\nObrigado por usar nosso sistema de estoque!");
}
else if (resposta == 0)
{
    Console.WriteLine("Saindo...");
}
else
{
    Console.WriteLine("\nOpção inválida!");
}

Resolução com while:

int estoque = 0;

Console.WriteLine("Deseja adicionar um produto ao estoque?");
Console.WriteLine("1 - Sim | 0 - Não");
int resposta = int.Parse(Console.ReadLine()!);

while (resposta == 1)
{
    Console.WriteLine("\nQuantidade:");
    int quantidade = Convert.ToInt32(Console.ReadLine());
    //ou int quantidade = int.Parse(Console.ReadLine()!);
    estoque += quantidade;

    Console.WriteLine($"Estoque atual: {estoque}");

    Console.WriteLine("\nDeseja continuar?");
    Console.WriteLine("1 - Sim | 0 - Não");
    resposta = int.Parse(Console.ReadLine()!);
}

Console.WriteLine("\nObrigado por usar nosso sistema de estoque!");
1 resposta

Oi, Christopher! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei bastante da forma como você estruturou as duas soluções, tanto com while quanto com do while. O uso da função ExibirTitulo deixou o código mais organizado e reutilizável, e o controle de fluxo com continue e break mostra que você já está confortável manipulando laços de repetição. Um ponto interessante é que no do while a variável de controle do loop (resposta) não é atualizada dentro do laço, o que pode gerar um comportamento inesperado.

Uma dica interessante para o futuro é utilizar o método int.TryParse() para evitar erros caso o usuário digite algo inválido:


string entrada = Console.ReadLine();
int numero;

if (int.TryParse(entrada, out numero))
{
    Console.WriteLine(numero);
}
else
{
    Console.WriteLine("Valor invalido");
}

Esse código tenta converter o valor digitado para número sem quebrar o programa, aumentando a robustez da aplicação.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!