Skip to content

Latest commit

 

History

History
167 lines (121 loc) · 6.66 KB

08-EstruturasCondicionais.md

File metadata and controls

167 lines (121 loc) · 6.66 KB

Estruturas condicionais

Esse módulo irá apresentar a vocês as famosas estruturas de Condição como: if/else e switch.

Para melhor entendimento você deve ter lido o módulo 07 - Operadores Logicos e Comparacao.

IF/ELSE

Se você ler em português "IF" = "SE" e ELSE = "SENÃO", e na programção não é diferente, mas chamam-se estruturas de condição pois acontece desta forma: se 5 é maior que 10 faça isso, senão, faça aquilo.

Vamos seguir para o código que é mais simples de entender.

O IF é uma estrutura separada do ELSE mas, o ELSE não existe sem um IF.

IF

Na pratica o IF ocorre da seguinte maneira:

public class If {
    public static void main(String args[]) {
        int idade1 = 50;
        int idade2 = 10;

        if (idade1 > idade2) { //leia-se "se a idade1 for maior que a idade2, ocorre o que estiver entre os blocos de chaves".
            System.out.println("A idade1 é maior que a idade2");
        }
    }
}

ELSE

Na prática o ELSE ocorre assim:

public class IfElse {
    public static void main(String args[]) {
        int idade1 = 10;
        int idade2 = 50;

        if (idade1 > idade2) { //leia-se "se a idade1 for maior que a idade2, ocorre o que estiver entre os blocos de chaves".
            System.out.println("A idade1 é maior que a idade2");
        } else { //leia-se: "senão, ocorre o que estive dentro dos blocos".
            System.out.println("A idade2 é maior que a idade1");
        }
    }
}

Basicamente é, se o que estiver entre os parênteses do IF der falso, ou seja, não for verdadeiro, o ELSE ocorre.

ELSE IF

O ELSE IF é um pouco mais complexo de entender, ele tem várias condições IF e por último cai na ELSE, ou seja, se ele der falso na primeira condição, ele parte para a próxima, se ele der falso na próxima, ele passa para outra até que atinja uma condição else.

public class ElseIf {
    public static void main(String args[]) {
        int idade1 = 50;
        int idade2 = 50;

        if (idade1 > idade2 10) { //leia-se: "se a idade1 for maior que a idade2, ocorre o que estiver entre os blocos de chaves".

            System.out.println("A idade1 é maior que a idade2");

        } else if (idade1 < idade2) { //leia-se: "se a condição do bloco anterior não foi satisfeita, E se a idade1 for menor que idade2, ocorre o que tiver dentro das chaves".

            System.out.println("A idade2 é maior que a idade1");

        } else { //senão, ocorre o que estive dentro dos blocos.

            System.out.println("A idade2 é igual que a idade1");
        }
    }
}

Operador ternário

Operador ternário resumidamente tem o mesmo princípio do IF/ELSE só que de maneira simplificada em somente uma linha. Utilizado quando há somente um IF e um ELSE.
public class OperadorTernario {
    public static void main(String args[]) {
        int idade1 = 60;
        int idade2 = 50;
        int idadeMaior;

        idadeMaior = idade1 > idade2 ? idade1 : idade2; /*lê-se: idadeMaior vai receber o valor de idade1 se a condição for verdadeira, caso contrário idadeMaior vai receber o valor de idade2
        idadeMaior também pode receber o valor diretamente em sua declaração, exemplo:
        int idadeMaior = idade1 > idade2 ? idade1 : idade2;
        */
        System.out.println(idadeMaior); //resultado vai ser "60" porque idade1(60) é maior que idade2(50).
    }
}

Funciona da seguinte maneira: se a condição booleana (idade1 > idade2) for verdadeira, o que vai ser executado é o código que vem depois do "?", e caso seja falso, o que vai ser executado vai ser o código que vem depois do ":".

Switch Case

O Switch Case é como se fosse a distribuição de um menu, no qual, dependendo do valor de uma variável pode realizar várias coisas. Na prática fica mais fácil de entender.
import java.util.Scanner;
public class Switch {
    public static void main(String args[]) {
        Scanner leitor = new Scanner(System.in);
        int caso = 0; //inicializando variável com um valor qualquer.

        System.out.println("Digite 1 para mostrar o nome Paulo, 2 para mostrar o nome José, e 3 para mostrar o nome Joyce");
        caso = leitor.nextInt();

        switch (caso) { //inicia-se a estrutura com switch e colocando a variável que quer olhar na frente.

        //os casos são de acordo com o que você espera da variável. é testado cada caso verificando se é compativel com o que foi digitado.

            case 1: //caso for numero 1, entra:
                System.out.println("Paulo");
                break; //break é necessário para informar o fim do bloco do caso.
            
            case 2:
                System.out.println("José");
                break;

            case 3: 
                System.out.println("Joyce");
                break;

            default: //caso o que foi digitado não seja nenhum dos casos que definiu o default é acionado. Ele não é necessário.
                System.out.println("Valor não encontrado no menu");
            //nao é necessário break por ser o último caso.
        }
    }
}

Switch Expression

A partir da versão do Java JDK 14, com uma prévia nas versões 12 e 13, passou a ser possível utilizar uma nova funcionalidade chamada de Switch Expression que permite que o switch case seja utilizado de uma maneira mais concisa e simples. Nem todas as empresas utilizam essa versão do Java, então é importante saber como funciona o switch case normal e seguir as boas práticas do projeto que você está trabalhando.

Uma Switch Expression não precisa de um break para finalizar cada bloco, e o switch pode ser utilizado como uma expressão, ou seja, ele retorna um valor que pode ser atribuido a uma variável ou retornado por um método.

Olha como fica o código acima utilizando Switch Expression:

import java.util.Scanner;
public class Switch {
    public static void main(String args[]) {
        Scanner leitor = new Scanner(System.in);
        int caso = 0;

        System.out.println("Digite 1 para mostrar o nome Paulo, 2 para mostrar o nome José, e 3 para mostrar o nome Joyce");
        caso = leitor.nextInt();

        String resultado = switch (caso) {
            case 1 -> "Paulo";
            case 2 -> "José";
            case 3 -> "Joyce";
            default -> "Valor não encontrado no menu";
        };

        System.out.println(resultado);
    }
}

Próximo - Exercício 1