Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Simulador de pedidos em uma cafeteria

Criei o código diretamente no visual studio utilizando C#, gostaria de entender uma coisa, em um cenario real, o ideal seria eu pedir para o usuario informar True OR False ?

A proposta pedi isso entendo que se formos fazer a atividade eu teria que usar, porém surgiu a duvida se em um cenario real é utilizado dessa forma ? ou iriamos utilizar a variavel como string para solictar ao usuario SIM/NÃO. ?

Deixei assim:

if (cadastrado == "SIM")
{
    double desconto = total * 0.10;
    totalFinal = total - desconto;

    // Saída
    Console.WriteLine("\nCliente cadastrado");
    Console.WriteLine($"Total sem desconto: R$ {total:F2}");
    Console.WriteLine($"Desconto aplicado: R$ {desconto:F2}");
    Console.WriteLine($"Total com desconto: R$ {totalFinal:F2}");
}
else
{
    totalFinal = total;

    // Saída
    Console.WriteLine("\nCliente não cadastrado");
    Console.WriteLine($"Total a pagar: R$ {totalFinal:F2}");
}
2 respostas
solução!

Oii, Lucas! Como vai?

A sua linha de raciocínio tá corretíssima e essa é uma dúvida muito pertinente quando começamos a pensar em aplicações do mundo real.

Para te responder de forma direta: Não, em um cenário real (com interface de texto), nós nunca pedimos para o usuário digitar "True" ou "False". Isso é um termo técnico do programador, não do usuário final.

Vou separar isso em dois mundos para ficar mais claro:

1. O mundo do usuário (Interface/UX)
O usuário deve interagir da forma mais natural possível. Se estamos no Brasil, ele espera digitar "Sim", "Não", "S" ou "N". Ou, em sistemas visuais (como sites e apps), ele espera clicar em um botão ou marcar uma caixa de seleção (checkbox).

Portanto, a sua alteração para if (cadastrado == "SIM") faz muito mais sentido para quem está usando o sistema no console!

2. O mundo do código (Lógica)

Apesar de pedirmos "Sim" para o usuário, dentro do código a variável cadastrado idealmente continua sendo tratada como lógica booleana (True/False) ou convertida para tal, pois isso evita erros e deixa o código mais rápido e seguro.

Exemplo prático de como fazemos essa "ponte":

Imagine que você pede a entrada como texto, mas converte para uma "chave" de verdadeiro ou falso internamente. Como ficaria uma versão mais completa do seu código em C#:

Console.WriteLine("O cliente é cadastrado? (S/N)");
string resposta = Console.ReadLine().ToUpper(); // converte para maiúsculo para aceitar 's' ou 'S'

// aqui transformamos a resposta do usuário em uma lógica booleana
bool ehCadastrado = (resposta == "S" || resposta == "SIM");

if (ehCadastrado) // o computador entende melhor o true/false aqui
{
    // lógica de desconto...
}
else 
{
    // lógica de preço normal...
}
  • Para o usuário: Sempre facilite (Sim/Não, S/N).
  • Para o computador: Sempre que possível, converta essa resposta para bool (True/False) para fazer as verificações if/else.

Você mandou muito bem em perceber que o usuário não deve ter que saber termos técnicos!

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

Lorena,

Muito obrigado pela explicação, ficou super claro, as vezes focando no backend esquecemos que o usuario terá uma tela interativa rs.