Decisões
if
Sintaxe
if(condição){
Bloco de código
}
A instrução if é a mais básica de todas as estruturas de decisão. Ela executa um bloco de código se uma condição fôr verdadeira (true).
Exemplo:
int hora = 7;
if(hora < 12){
System.out.println("Bom dia");
}
No exemplo acima, como a condição é verdadeira, o output será: “Bom dia”.
if … else
Sintaxe
if(condição){
Bloco de código 1
}else{
Bloco de código 2
}
A instrução if … else executa um bloco de código (bloco de código 1) se a condição fôr
verdadeira (true); se a condição fôr falsa (false) executa outro bloco de código (bloco de
código 2).
Exemplo:
int hora = 16;
if(hora < 12){
System.out.println("Bom dia");
}else{
System.out.println("Boa tarde");
}
if … else if … else
Sintaxe
if(condição 1){
Bloco de código 1
}else if(condição 2){
Bloco de código 2
…
}else if(condição n){
Bloco de código n
}else{
…
}
A instrução if else if permite definir múltiplas hipóteses de decisão numa única instrução
if.
Uma instrução if pode ter 0 ou mais condições else if. Se houver um else este tem de
estar no final do if.
Exemplo:
int nr = 3;
if(nr == 1){
System.out.println(“Nr igual a 1”);
}else if(nr == 2{
System.out.println(“Nr igual a 2”);
}else if(nr == 3){
System.out.println(“Nr igual a 3”);
}else{
System.out.println(“Nr inválido”);
}
Operador ternário
Sintaxe
condição ? instrução 1 : instrução 2;
O operador ternário (?:) é uma alternativa à instrução if … then … else.
Se a condição fôr verdadeira (true) executa a instrução 1; se a condição fõr falsa (false)
executa a instrução 2.
Exemplo:
int a = 4;
int b = 9;
int minVal = (a < b) ? a : b;
System.out.println(minVal); //output: 4
switch … case
Sintaxe
switch(var){
case val1:
bloco codigo 1;
[break];
…
case valn:
bloco código 2;
[break];
[default:
Bloco_codigo_default;]
}
A instrução switch é uma estrutura de decisão múltipla. Com base no valor de uma variável
(var), pode executar um ou mais de vários blocos de código.
Consoante o valor de var, vai comparar o valor de var com cada secção case. Se encontrar
uma secção case em que o valor seja igual a var, executa o bloco de código dessa secção
case.
Após executar o bloco de código na secção case encontrada, executa todos os blocos de
código abaixo até encontrar a instrução break.
Se não houver nenhuma secção case com valor igual à variável var, executa o código da
secção default.
A instrução switch avalia valores inteiros, ou seja, a variável var e as secções case só
podem ter valores inteiros. No entanto, a partir do Java SE7, a instrução switch pode
também avaliar strings.
Exemplo 1:
public class SwitchMonth {
public static void main(String[] args) {
int month = 8;
String monthString;
switch (month) {
case 1:
monthString = "Janeiro";
break;
case 2:
monthString = "Fevereiro";
break;
case 3:
monthString = "Março";
break;
case 4:
monthString = "Abril";
break;
case 5:
monthString = "Maio";
break;
case 6:
monthString = "Junho";
break;
case 7:
monthString = "Julho";
break;
case 8:
monthString = "Agosto";
break;
case 9:
monthString = "Setembro";
break;
case 10:
monthString = "Outubro";
break;
case 11:
monthString = "Novembro";
break;
case 12:
monthString = "Dezembro";
break;
default:
monthString = "Mês inválido";
}
System.out.println(monthString);
}
}
Output do exemplo acima: “Agosto”
Exemplo 2:
public static int getMonthNumber(String month) {
int monthNumber = 0;
switch (month.toLowerCase()) {
case "january":
monthNumber = 1;
break;
case "february":
monthNumber = 2;
break;
case "march":
monthNumber = 3;
break;
case "april":
monthNumber = 4;
break;
case "may":
monthNumber = 5;
break;
case "june":
monthNumber = 6;
break;
case "july":
monthNumber = 7;
break;
case "august":
monthNumber = 8;
break;
case "september":
monthNumber = 9;
break;
case "october":
monthNumber = 10;
break;
case "november":
monthNumber = 11;
break;
case "december":
monthNumber = 12;
break;
default:
monthNumber = 0;
break;
}
return monthNumber;
}
