O comando condicional if
tem a seguinte sintaxe em Java:
if
: a condicao
(uma expressão boolean, verdadeiro ou falso) é verificada. Caso seja verdadeira o //bloco de comandos 01
é executado. Caso não seja, o bloco não será executado.if(condicao){
//bloco de comandos 01
}
if-else
: a condicao
é verificada. Caso seja verdadeira o //bloco de comandos 01
é executado. Caso não seja, o //bloco de comandos 02
será executado.if(condicao){
//bloco de comandos 01
} else{
//bloco de comandos 02
}
if-else-if
: a condicao01
é verificada. Caso a condicao01
seja verdadeira, o //bloco de comandos 01
é executado e a condicao02
não é verificada, nem o //bloco de comandos 02
será executado. Caso a condicao01
não seja verdadeira, a condicao02
será verificada e caso esta seja verdadeira o //bloco de comandos 02
será executado.if(condicao01){
//bloco de comandos 01
} else if(condicao02){
// bloco de comandos 02
}
Podemos colocar um else no final também
if(condicao01){
//bloco de comandos 01
} else if(condicao02){
// bloco de comandos 02
} else{
// bloco de comandos 03
}
OBS: Ao contrário de Python, aqui você precisa usar as chaves {}
. NÃO ESQUEÇA.
Se você esquecer ele executará só o primeiro comando do bloco. Estranho né? Este é o pior tipo de erro que você pode encontrar no código. Por que ele não dará erro na compilação nem na execução. Mas o seu código estará errado sem você saber. Evite isso e sempre use chaves.
switch
: Dada uma expressao
que pode ser int
, char
, String
, Enum
, entre outros. A sua expressao
será comparada com cada um dos literais e executará o bloco respectivo. Caso nenhuma comparação resulte em verdadeiro, o bloco do default
será executado.switch(expressao){
case literal01:
// bloco de comandos 01
break;
case literal02:
// bloco de comandos 02
break;
case literal03:
// bloco de comandos 03
break;
default:
// bloco de comandos 04
}
while
: a condicao
(uma expressão boolean, verdadeiro ou falso) é verificada. Caso seja verdadeira o //bloco de comandos 01
é executado e o controle volta para o começo do while (e faz a verificação novamente). Caso não seja, o bloco não será executado.while(condicao){
// bloco de comandos 01
// este bloco se repete enquanto a condicao for satisfeita
}
do while
: a condicao
o bloco de comando é executado e depois a condição é verificada. Caso seja verdadeira o controle volta para o começo do while (e faz a verificação no final novamente). Caso não seja, o controle não volta.do{
// bloco de comandos 01
// este bloco executa uma vez e
// se repete enquanto a condicao for satisfeita
}while(condicao);
OBS1: a única diferença entre este e o while
é que neste você pode ter certeza de que o bloco será executado na primeira vez, mesmo que a condição seja falsa.
OBS2: perceba que tem um ;
no final do while.
OBS3: este comando não é usado com frequência
for
: é inicializado com um comandoInicializacao
; repete enquanto a condição
for verdadeira; sempre ao final de cada iteração um comandoRepeticao
é executado.for(comandoInicializacao; condicao; comandoRepeticao){
// bloco de comandos 01
// este bloco se repete enquanto a condicao for satisfeita
// ao final o comandoRepeticao é executado
}
exemplo:
for(int i=0; i<5; i++){
System.out.println(i);
}
saída:
0
1
2
3
4
for-each
: Dada uma coleção (collection
) qualquer, este iterador acessa cada objeto dentro da coleção.for(Type object: collection){
// bloco de comandos 01 usando o objeto object
}
for-each
public static void main(String[] args){
int[] numeros = new int[3];
numeros[0] = 10;
numeros[1] = 21;
numeros[2] = 32;
for(int n: numeros){
System.out.println(n);
}
}
usando List
como coleção
public static void main(String[] args){
List<Integer> numeros = new ArrayList<>();
gatos.add(10);
gatos.add(21);
gatos.add(32);
for(int n: numeros){
System.out.println(n);
}
}
saída em ambos os programas:
10
21
32
class Gato{
String nome;
public Gato(String aNome){
this.nome = aNome;
}
public void miau(){
system.out.println(nome + " mia!")
}
}
Usando array
como coleção
public static void main(String[] args){
Gato[] gatos = new Gato[3];
gatos[0] = new Gato("Brutus");
gatos[1] = new Gato("Chirriro");
gatos[2] = new Gato("Xitara");
for(Gato gato: gatos){
gato.miau();
}
}
usando List
como coleção
public static void main(String[] args){
List<Gato> gatos = new ArrayList<>();
gatos.add(new Gato("Brutus"));
gatos.add(new Gato("Chirriro"));
gatos.add(new Gato("Xitara"));
for(Gato gato: gatos){
gato.miau();
}
}
saída em ambos os programas:
Brutus mia!
Chirriro mia!
Xitara mia!
Existe muito mais material sobre estes assuntos, alguns serão colocados nesta página, outros serão dados em aula, e outros estão nos livros da ementa.