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!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!