Oi, Giseli! Tudo bem?
Analisando seu código, o uso da estrutura if/else está correto e resolve bem a lógica de combinar a idade com o status de estudante para determinar se a pessoa deve pagar entrada inteira ou tem direito à meia-entrada. Um ponto que merece atenção é o uso do operador & no lugar de &&. O código até funciona, mas o operador && é o mais indicado para comparações lógicas, pois ele interrompe a avaliação assim que encontra uma condição falsa, tornando o código mais eficiente.
Outro ponto importante é tratar a variável estudante para evitar erros quando o usuário digitar letras maiúsculas. Veja o exemplo abaixo:
Console.WriteLine("Digite sua idade: ");
int idade = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Voce eh estudante? (s/n)");
string estudante = Console.ReadLine().ToLower();
if (estudante == "n" && idade > 18)
{
Console.WriteLine("Voce deve pagar entrada inteira");
}
else
{
Console.WriteLine("Voce tem direito a meia entrada");
}
O método .ToLower() converte tudo para letras minúsculas antes de fazer a comparação com o valor digitado no ReadLine, garantindo que o programa funcione independentemente de como o usuário escrever a resposta. Esse é um cuidado simples, mas que faz bastante diferença na experiência de quem usa o programa.
Continue praticando e explorando esses conceitos, pois cada desafio resolvido fortalece muito sua base em programação.
Você já tentou adicionar outras condições ao código, como verificar diferentes faixas de idade para aplicar descontos distintos?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!