2
respostas

Desafio: Verificação de desconto

Boa tarde,

Realizando o desafio de verificação de desconto.
Como se aplicaria a forma de entrada de dados em uma variável booleana quando o usuário informar se é estudante ou não?

Por não saber, desenvolvi essa lógica a partir de uma variável do tipo String e realizei a comparação por meio do equalsIgnoreCase().
Detalhe: meu java está na versão 25.

import java.util.Scanner;

void main() {
Scanner scan = new Scanner(System.in);
double valorIngresso = 47.50;
String confirma_estudante = "Sim";

IO.print("-------------------------------");
IO.print("\nInforme sua idade:");
int idade = scan.nextInt();

IO.print("-------------------------------");
IO.print("\nÉ estudante:");
String status_estudante = scan.next();

if (idade < 18){
    IO.print("-------------------------------"
            +"\nCliente tem direito a meia-entrada."
            + "\nValor do ingresso: R$" + (valorIngresso/2));

} else if (idade >= 18 && status_estudante.equalsIgnoreCase(confirma_estudante)){
    IO.print("-------------------------------"
            +"\nCliente tem direito a meia-entrada."
            + "\nValor do ingresso: R$" + (valorIngresso/2));

} else {
    IO.print("-------------------------------"
            +"\nCliente não tem direito a meia-entrada."
            + "\nValor do ingresso: R$" + valorIngresso);
}

}

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
2 respostas

Oi, Joao! Como vai?

Gostei da sua lógica usando equalsIgnoreCase() para comparar a resposta do usuário, ficou bem clara e funcional. Com o que você descreveu, usar uma String é uma boa saída, mas dá pra simplificar usando um boolean diretamente.

Uma dica interessante para o futuro é usar o método nextBoolean() do Scanner. Veja este exemplo:


Scanner scan = new Scanner(System.in);
System.out.println("Você é estudante? (true/false)");
boolean estudante = scan.nextBoolean();

if (estudante) {
    System.out.println("Tem direito à meia-entrada.");
} else {
    System.out.println("Não tem direito à meia-entrada.");
}

Esse código lê um valor booleano (true ou false) diretamente do usuário e simplifica a condição no if.

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

Bom dia, Armano.

Entendi como aplicar.
Mas, visando a forma como é informado, o usuário terá que escrever TRUE ou FALSE para relatar se o cliente é um estudante ou não. Nesse caso, teria que fazer um comparativo com o if() para dar os os termos "SIM" ao TRUE e "NÃO" ao FALSE, isso visando a entrada de dados como String. De qualquer forma esta seria a forma correta de resolver este problema, certo?