Pensamento Computacional - Comandos de decisão no Java

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

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:

FluxogramaIF.png

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

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:

Fluxograma-IF-ELSE.png


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.

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");
    }
}

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.

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).

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).

Exercício 3

Implementar uma calculadora simples conforme a wiki.