Mudanças entre as edições de "Pensamento Computacional - Comandos de decisão no Java"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(18 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 5: Linha 5:
 
<syntaxhighlight lang=java >
 
<syntaxhighlight lang=java >
 
if ( expressao ) {
 
if ( expressao ) {
  // bloco de código executado quando a expressão é verdadeira
+
    // bloco de código executado quando a expressão é verdadeira
 
}
 
}
</syntaxhighlight>
+
</syntaxhighlight>  
 +
 
 +
Seria o equivalente em fluxograma a:
 +
 
 +
[[imagem:FluxogramaIF.png |350px]]
 +
 
 +
Observar que este comando não possui a parte else (SENÃO).
  
Observar que este comando não possui a parte else (SENÃO). As chaves podem ser omitidas se houver um único comando no bloco.
 
  
 
Exemplos:
 
Exemplos:
Linha 16: Linha 21:
 
import java.util.Scanner;
 
import java.util.Scanner;
  
public class Cilindro {
+
public class Temperatura {
 
     public static void main(String[] args) {
 
     public static void main(String[] args) {
 
         int temperaturaHoje;
 
         int temperaturaHoje;
Linha 33: Linha 38:
  
 
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.
 
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:
 +
 +
<syntaxhighlight lang=java >
 +
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");
 +
    }
 +
}
 +
</syntaxhighlight>
 +
 +
Na realidade, pode-se dizer que a sintaxe do if é:
 +
 +
<syntaxhighlight lang=java >
 +
if ( expressao )
 +
    instrução
 +
</syntaxhighlight>
 +
 +
onde a instrução pode ser:
 +
 +
<syntaxhighlight lang=java >
 +
    instrução simples terminada em ;
 +
ou
 +
    bloco de instruções com chaves
 +
</syntaxhighlight>
  
 
=Comando de decisão "if" com parte "else"=
 
=Comando de decisão "if" com parte "else"=
Linha 43: Linha 84:
 
}
 
}
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Seria o equivalente em fluxograma a:
 +
 +
[[imagem:Fluxograma-IF-ELSE.png |350px]]
 +
  
 
Exemplo:  
 
Exemplo:  
Linha 100: Linha 146:
  
 
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.
 
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"=
 +
 +
<syntaxhighlight lang=java >
 +
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 {
 +
 +
}
 +
</syntaxhighlight>
 +
 +
Exemplo:
 +
 +
<syntaxhighlight lang=java >
 +
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");
 +
    }
 +
}
 +
</syntaxhighlight>
 +
 +
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 [https://wiki.sj.ifsc.edu.br/index.php/AULA_de_Introdu%C3%A7%C3%A3o_a_L%C3%B3gica_de_Programa%C3%A7%C3%A3o_-_Comandos_de_Decis%C3%A3o#Exemplo_1_-_Um_Fluxograma_para_uma_Calculadora wiki].

Edição atual tal como às 09h14min de 21 de setembro de 2023

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.