Pensamento Computacional - Comandos de decisão no Java

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

1 Comando de decisão "if" (sem a parte "else")

A sintaxe deste comando é basicamente:

if ( expressao ) {
    // bloco de código executado quando a expressão é verdadeira
}

Seria o equivalente em fluxograma a:

Observar que este comando não possui a parte else (SENÃO).


Exemplos:

import java.util.Scanner;

public class Temperatura {
    public static void main(String[] args) {
        int temperaturaHoje;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com a temperatura (inteiro)");
        temperaturaHoje = teclado.nextInt();

        if ( temperaturaHoje >  21 ) {
            System.out.println("Hoje está quente!!!");
        }
   
        System.out.println("Fim");
    }
}

NOTAR que neste exemplo, o comando if permite apenas realimentar o usuário caso hoje seja um dia considerado quente. Se a temperatura for menor ou igual a 21, não teria como fazer esta realimentação sem a parte else.

 OBSERVAÇÂO: As chaves podem ser omitidas se houver um único comando no bloco. Ver o código abaixo:
import java.util.Scanner;

public class Temperatura {
    public static void main(String[] args) {
        int temperaturaHoje;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com a temperatura (inteiro)");
        temperaturaHoje = teclado.nextInt();

        if ( temperaturaHoje >  21 )
            System.out.println("Hoje está quente!!!");
            System.out.println("Acho que vou para a praia..."); // esta instrução será executada sempre - a identação está equivocada, mas o Java ignora identação.
   
        System.out.println("Fim");
    }
}

Na realidade, pode-se dizer que a sintaxe do if é:

if ( expressao )
    instrução

onde a instrução pode ser:

    instrução simples terminada em ;
ou
    bloco de instruções com chaves

2 Comando de decisão "if" com parte "else"

if ( expressao ) {
   // bloco de código executado quando a expressão é verdadeira
} else {
   // bloco de código executado quando a expressão é falsa
}

Seria o equivalente em fluxograma a:


Exemplo:

import java.util.Scanner;

public class Temperatura {
    public static void main(String[] args) {
        int temperaturaHoje;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com a temperatura (inteiro)");
        temperaturaHoje = teclado.nextInt();

        if ( temperaturaHoje > 21) {
            System.out.println("Quente!!!");
        } else {
            System.out.println("Frio...Ou ameno...");           
        }
   
        System.out.println("Fim");
    }
}

Neste exemplo, quando a expressão é falsa, o bloco de código associado a parte else é executado. Observe a mensagem "Fim" sempre é executada, pois não faz parte do comando if-else.

3 Comandos aninhados

Observe que nos blocos, seja da parte if, seja da parte else podem ser colocadas outras instruções, inclusive novos comandos de decisão:

import java.util.Scanner;

public class Temperatura {
    public static void main(String[] args) {
        int temperaturaHoje;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com a temperatura (inteiro)");
        temperaturaHoje = teclado.nextInt();

        if ( temperaturaHoje > 21) {
            System.out.println("Quente!!!");
            if ( temperaturaHoje > 35 ) {
                System.out.println("Na realidade está muito quente!!!");
            }
        } else {
            System.out.println("Frio...Ou ameno...");           
        }
   
        System.out.println("Fim");
    }
}

3.1 Exercício 1

Acrescentar uma mensagem no bloco de código associado ao else caso esteja muito frio ("abaixo de 0"). Para tanto, use um comando if aninhado.

4 Comando de decisão com "if" encadeado na parte "else"

if ( expressao ) {
   // bloco de código executado quando a expressão é verdadeira
} else if ( expressao) {
   // bloco de código executado quando a expressão é falsa
} else if ( expressao) {
   // bloco de código executado quando a expressão é falsa
   :
   :
} else {

}

Exemplo:

import java.util.Scanner;

public class Temperatura {
    public static void main(String[] args) {
        int temperaturaHoje;
        Scanner teclado = new Scanner(System.in);
        System.out.println("Entre com a temperatura (inteiro)");
        temperaturaHoje = teclado.nextInt();

        if ( temperaturaHoje > 35) {
            System.out.println("Muito Quente!!!");
        } else if ( temperaturaHoje > 21 ) {
            System.out.println("Quente!");           
        } else if  ( temperaturaHoje > 17 ) {
            System.out.println("Ameno!"); 
        } else {
            System.out.println("Frio!!"); 
        }
        System.out.println("Fim");
    }
}

Observe que na realidade não é exatamente um novo comando. Trata-se de encadeamento de comandos ifs com as partes else. A última parte é um else (que é opcional).

4.1 Exercício 2

Implementar o exercício da avaliação. Para este exercício, a leitura do modo "idoso" pode ser realizada como um número inteiro (0 se não idoso e 1 como idoso).

4.2 Exercício 3

Implementar uma calculadora simples conforme a wiki.