Linguagem de Programação Java
Seja um Profissional Aprendendo com Profissionais
www.3way.com.br 40
Podemos ter várias estruturaselse-ifdepois de uma declaraçãoif. A estruturaelseé opcional e pode ser omitida. No exemplo mostrado acima, se a primeira condição é verdadeira, o programa executa a <sentença 1> e salta as outras instruções. Caso contrário, se a condição é falsa, o fluxo de controle segue para a análise da segunda condição. Se esta for verdadeira, o programa executa a <sentença 2>e salta a<sentença 3>. Caso contrário, se a segunda condição é falsa, então a<sentença 3> é executada.
Observe um exemplo da declaraçãoif-else-ifno seguinte trecho de código:
public class TesteIfElse {
public static void main(String[] args) { int mesDoAno = 13;
if (mesDoAno == 12 || mesDoAno == 1 || mesDoAno == 2) { System.out.println("Verão");
} else if (mesDoAno == 3 || mesDoAno == 4 || mesDoAno == 5) { System.out.println("Outono");
} else if (mesDoAno == 6 || mesDoAno == 7 || mesDoAno == 8) { System.out.println("Inverno");
} else if (mesDoAno == 9 || mesDoAno == 10 || mesDoAno == 11) { System.out.println("Primavera");
} else {
System.out.println("Mês não é válido: " + mesDoAno); }
} }
Listagem 5.1 – Testando IF-ELSE
5.2 Declaração switch
Outra maneira de indicar uma condição é através de uma declaraçãoswitch. A construçãoswitch permite que uma única variável tenha múltiplas possibilidades de avaliação. Oswitchtrabalha sobre os tipos primitivosbyte,
short,char eint,ele também pode operar sobre tipos enumerados (a serem vistos posteriormente) sobre classes empacotadorasCharacater,Byte,Short eInteger.
A declaração switch possui a seguinte forma:
switch (<variável_do_tipo_permitido>) { case <valor 1>: [instrução1;] [instrução2;] [... ] [break;] case <valor 2>: [instrução1;] [instrução2;] [...] [break;] case <valor n>: [instrução1;] [instrução2;] [...] [break;] default: [instrução1;] [instrução2;] [...] [break;] } O programa executa todas instruções a partir do primeiro case,
até encontrar uma instrução break, que
interromperá a execução do switch, nada após o break será
//atribuindo valor a variável referência Carro carro1 = new Carro();
carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização //criando novo alias
Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela
chamada de um método em um objeto usando o operador binário "." (ponto),
devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem
o seu estado. Dois objetos distintos têm
o mesmo estado se suas variáveis membro têm os
mesmos valores. onde, <variável_do_tipo_permitido> compreende os tipos de dados citados anteriormente e <valor n> são constantes literais dos tipos de dados citados.
Quando a declaração switch é encontrada, o fluxo de controle avalia inicialmente a
<variável_do_tipo_permitido> e segue para o case que possui o valor igual ao da variável. O programa executa
todas as instruções a partir deste ponto, mesmo as dos próximos case, até encontrar uma instrução break, que interromperá a execução do switch, nada após o break será executado.
Se nenhum dos valores case for satisfeito, o bloco default será executado. Este é um bloco opcional. O bloco default não é obrigatório na declaração switch.
Exemplo para switch:
public class TesteSwitch {
public static void main(String[] args) { int mesDoAno = 11;
switch (mesDoAno) { case 12:
case 1: case 2:
System.out.println("Verão"); break;
case 3: case 4: case 5:
System.out.println("Outono"); break;
case 6: case 7: case 8:
System.out.println("Inverno"); break;
case 9: case 10: case 11:
System.out.println("Primavera"); break;
default:
System.out.println("Mês não é válido: " + mesDoAno); break;
} } }
Listagem 5.2 – Testando Switch-Case
Note que para o caso de intervalos de valores a declaraçãoif-else-if é mais indicada, veja exemploif-else-if.
5.3 Iterações (Laços)
Estruturas de controle de repetição são comandos em linguagem Java que permitem executar partes específicas do código determinada quantidade de vezes. Existem três tipos de estruturas de iteração gerais:while, do-while efor.
5.3.1 while
A declaração while executa repetidas vezes um bloco de instruções enquanto a expressão lógica (condição) resultar emtrue (boolean).
As instruções contidas dentro do bloco while são
executadas repetidas vezes enquanto o valor de
expressão_lógica for verdadeiro.
Linguagem de Programação Java
Seja um Profissional Aprendendo com Profissionais
www.3way.com.br 12
//atribuindo valor a variável referência Carro carro1 = new Carro();
carro1.ano = "2001"; carro1.modelo= "fusca"; carro1.cor = "prata";
Figura 2.4 – Layout Memória após inicialização //criando novo alias
Carro carro2 = carro1;
Figura 2.5 – Layout Memória duas variáveis referência para o mesmo objeto
2.3 Membros de Instância
Cada objeto criado deverá ter sua própria instância de variáveis (atributos) definidas pela classe. Os métodos definem o comportamento de um objeto. Isto é importante, pois denota que um método pertence a cada objeto da classe. Porém não devemos confundir isto com a implementação do método, que é compartilhada por todas as instâncias da classe.
2.3.1 Invocação de Métodos
Objetos se comunicam pela troca de mensagens, isto significa que um objeto pode ter que mostrar um comportamento particular invocando uma operação apropriada que foi definida no objeto. Em Java, isto é feito pela
chamada de um método em um objeto usando o operador binário "." (ponto),
devendo especificar a mensagem completa: o objeto que é o recebedor da mensagem, o método a ser invocado e os argumentos para o método (se houver). O método invocado no recebedor pode também enviar informações de volta ao objeto chamador através de um valor de retorno. O método chamado deve ser um que esteja definido pelo objeto.
Os valores das variáveis em um objeto constituem
o seu estado. Dois objetos distintos têm
o mesmo estado se suas variáveis membro têm os
mesmos valores.