Olá, Aristóteles. Como vai?
Excelente exemplo prático do uso do laço while! Esse tipo de estrutura é fundamental para sistemas de automação onde não sabemos exatamente quantas vezes uma ação vai ocorrer, mas sabemos a condição que deve ser atendida para que ela pare.
No seu código, a condição estoque > 0 garante que as vendas só aconteçam enquanto houver produtos disponíveis. Vamos analisar alguns pontos técnicos interessantes da sua implementação:
1. O Operador de Atribuição Composta
Você utilizou o estoque -= 1. Essa é uma forma elegante e eficiente de escrever estoque = estoque - 1. Em programação, chamamos isso de decremento, e é o que faz com que a condição do while um dia se torne falsa, evitando um loop infinito.
2. Fluxo de Execução
Diferente do laço for, que geralmente percorre uma sequência definida, o while foca no estado da variável.
Dicas para expandir sua prática:
- Simulando Reposição: Você poderia adicionar uma verificação dentro do laço ou logo após o fim dele para disparar um alerta de "Necessário repor estoque".
- Controle de Entrada: Imagine que cada venda pudesse ter uma quantidade diferente. Você poderia transformar o valor fixo
1 em uma variável quantidade_venda e subtraí-la do estoque, garantindo que o valor não fique negativo.
venda = 2
if estoque >= venda:
estoque -= venda
3. Mensagem Final
A última linha do seu código, print("Estoque esgotado."), está fora da indentação do while. Isso é uma ótima prática, pois garante que a mensagem só seja exibida uma única vez, exatamente após o encerramento do ciclo de vendas.
Continue explorando essas estruturas, pois o controle de fluxo é o coração de qualquer aplicação comercial!
Espero que possa ter lhe ajudado!