Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Uso do Switch Case

Boa tarde.

Estava fazendo meu código e substitui o meu if/else pelo switch case mas queria saber se tem como eu colocar um operador para ser um numero dentre eles ou teria que fazer 1 a 1

public class Condicional {
    public static void main(String[] args) {
        int realisingDate = 1990;
        boolean includedOnPlan = true;
        double ratingMovieImdb = 9.1;
        double priceOfRent = 9.99;
        String plan = "basic";
        String date;


        switch(realisingDate){
            case 2024:
                date = "New release";
                break;
            case 2005:
                date = "Good retro";
                break;
            default:
                date = "Invalid date";
                break;

        }
        System.out.println(date);
        if (includedOnPlan && plan.equals("plus")){
            System.out.println("Watch Now");
        }else{
            System.out.println("Rent for: US$%.2f".formatted(priceOfRent));
        }
    }
}

Nesse código por exemplo queria colocar um case variável de 2020 a 2024 que seria um lançamento, de 2005 a 1920 seria retro, só para fazer um teste, mas no caso do switch case eu precisaria colocar cada case com seu próprio valor ou teria um operador para evitar esse monte de códigos?

1 resposta
solução!

Oi Lucas,

Entendi sua dúvida sobre o switch case e como lidar com intervalos de valores.

Infelizmente, o switch case em Java não suporta diretamente intervalos como "de 2020 a 2024". Ele é projetado para comparar valores exatos.

Melhor mesmo é usar if/else if/else.

Veja um exemplo:

public class Condicional {
    public static void main(String[] args) {
        int realisingDate = 1990;
        boolean includedOnPlan = true;
        double ratingMovieImdb = 9.1;
        double priceOfRent = 9.99;
        String plan = "basic";
        String date;

        if (realisingDate >= 2020 && realisingDate <= 2024) {
            date = "New release";
        } else if (realisingDate >= 1920 && realisingDate <= 2005) {
            date = "Good retro";
        } else {
            date = "Invalid date";
        }
        
        System.out.println(date);
        if (includedOnPlan && plan.equals("plus")){
            System.out.println("Watch Now");
        }else{
            System.out.println("Rent for: US$%.2f".formatted(priceOfRent));
        }
    }
}

Essa abordagem é mais clara e concisa para lidar com intervalos do que o switch case. 👍

Para saber mais: Documentação oficial do Java sobre switch. Este link leva à documentação oficial da Oracle sobre a declaração switch em Java, explicando seu uso e limitações.

Continue praticando e explorando as diferentes estruturas de controle de fluxo! 💪