1
resposta

Classificação de categoria:

public class valores {

public static void main(String[] args) {
    double preco = 150.00;

    if (preco <= 50.0) {
        System.out.println("Economico");
    } else if (preco > 50.01 && preco <= 200.0 ) {
        System.out.println("Intermediario");
    } else {
        System.out.println("Premium");
    }

}
}
1 resposta

Oii, Letícia!

Você está imparável hoje, hein? Muito bom ver essa dedicação!

Seu código funciona para a maioria dos casos, mas quero te convidar a ser uma "detetive" comigo para analisarmos um cenário bem específico que poderia gerar um erro no seu sistema de loja.

O "Caso Misterioso" do 50.01

Imagine que o produto custe exatamente R$ 50,01. Vamos testar na sua lógica:

  1. if (preco <= 50.0): Falso (50.01 é maior).
  2. else if (preco > 50.01 ...): Falso (50.01 não é maior que 50.01, é igual!).
  3. else: Verdadeiro -> O sistema imprimiria "Premium".

Ou seja, um produto de R$ 50,01 sairia como Premium por causa desse pequeno intervalo na lógica.

A Simplificação Mágica

A beleza do else if é que ele só é testado se o if anterior falhou.

  • Se o código chegou no segundo if, nós já temos certeza que o número é maior que 50. Não precisamos testar isso de novo!

Podemos simplificar assim:

public class Valores { // Lembra da classe com Maiúscula? ;)
    public static void main(String[] args) {
        double preco = 50.01; // Teste com esse valor

        if (preco <= 50.0) {
            System.out.println("Econômico");
        } else if (preco <= 200.0) { 
            // Se chegou aqui, JÁ SABEMOS que é maior que 50.
            // Só precisamos checar se é menor que 200.
            System.out.println("Intermediário");
        } else {
            System.out.println("Premium");
        }
    }
}

Viu como ficou mais limpo?

  1. Arrumei o nome da classe para Valores (padrão Java).
  2. Separei as linhas para facilitar a leitura.
  3. Tirei a parte redundante do if (preco > 50.01), o que resolveu o bug do 50.01 e deixou o código mais leve.

Tente fazer essas alterações e teste com o valor 50.01 para ver a mágica acontecer!

Bons estudos!

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