Pensamento Computacional - Comandos de decisão no Java
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.