Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação I Array Comandos Condicionais e de Iteração Joinvile Batista Junior UFGD - LPI 05 - Joinvile Batista Junior 22 Array é uma Classe Implícita Array é uma classe implícita • a classe Array é construída automaticamente – não está definida em nenhum pacote • permite acessar a variável pública length (comprimento do array) • passagem de parâmetro por referência – como qualquer outro objeto Intervalo de índices de array é fixo • varia de 0 a length – 1 UFGD - LPI 05 - Joinvile Batista Junior 33 Criando, Inicializando e Definindo Métodos Criação de objetos de Array • de tipos primitivos – criando um array de inteiros com 3 elementos • int[ ] vetInt = new int[3]; – criando o array de inteiros e inicializando com 3 elementos • int[ ] vetInt = { 31, 10, 1957 }; • de classes – criando um array de Strings com 7 elementos • String[ ] diasSemana = new String[7]; – criando o array de Strings e inicializando com 7 elementos • String[ ] diasSemana = { “segunda”, ... , “domingo” }; Definindo métodos com tipo Array • tipo de parâmetro e tipo de retorno do método invertArray – int[ ] invertArray (int[ ] vetor) { } UFGD - LPI 05 - Joinvile Batista Junior 44 Definindo Arrays Multidimensionais Arrays multidimensionais • criando um array de inteiros de 2 dimensões: a primeira dimensão de comprimento 3 e a segunda dimensão de comprimento 7 – int[ ] [ ] matriz = new int[3][7]; • atribuindo o valor 8 ao índice 2 e 5 – matriz[2][5] = 8; UFGD - LPI 05 - Joinvile Batista Junior 55 Comandos Condicionais if .. else • if (condição_booleana) { bloco_then } else { bloco_else } • parte else é opcional switch .. case • switch (expressão) {case valor1: bloco1 break; ... default: bloco_def ;} • expressão : deve resultar em valor inteiro ou enumerado – tipos enumerados serão estudados posteriormente • case valor1 : se expressão resultar no valor1, executa o bloco1 • break : finaliza a execução do switch – na sua ausência continua a execução do bloco do próximo case • default : se a expressão não resultar em nenhum dos valores associados ao cases anteriores executa o bloco default UFGD - LPI 05 - Joinvile Batista Junior 66 Comandos de Iteração for • for (inicialização; teste; atualização) { bloco_for }; – inicialização : define variável de controle local e inicializa – teste : testa variável de controle e permanece no loop enquanto o resultado do teste for true – atualização : atualiza o valor da variável de controle • exemplo de loop crescente: for (int cont = 0; cont < 10; i++) – i++ i = i + 1 • exemplo de loop decrescente: for (int cont = 10; cont > 0; i--) – i-- i = i - 1 while • teste no início da iteração – while (condição_booleana) { bloco_while } • teste no fim da iteração – do { bloco_do } while (condição_booleana); UFGD - LPI 05 - Joinvile Batista Junior 77 Utilizando constantes em tipos enumerados • O modificador final pode ser utilizado para definir constantes • Um tipo enumerado pode ser definido a partir de constantes. O comando switch pode ser utilizado para atribuir um tratamento específico para cada valor do tipo enumerado. int cor; final int AMARELA = 1, VERDE = 2, VERMELHA = 3; switch (cor) { case AMARELA: // tratamento para cor amarela break; case VERDE: // tratamento para cor verde break; case VERMELHA: // tratamento para cor vermelha break; default: // tratamento para outra cor } UFGD - LPI 05 - Joinvile Batista Junior 88 Definindo uma Classe Aluno para Indexar em Array package entidade; public class Aluno { private String nome; private int idade; public Aluno (String nome, Endereço endereço) { this.nome = nome; this.idade = idade; } public String getNome () { return nome; } public void setNome (String nome) { this.nome = nome; } public Endereço getIdade () { return idade; } public void setIdade (int idade) { idade = idade; } } UFGD - LPI 05 - Joinvile Batista Junior 99 Manipulando Array com Objetos da Classe Aluno package controle; import entidade.Aluno; public class Principal { static Aluno[] alunos = new Aluno[4]; public static void main (String[] args) { inicializaAlunos (); imprimeAlunosMaiores (); } private static void inicializaAlunos () { alunos[0] = new Aluno ("Tatiana", 22); alunos[1] = new Aluno ("Roberta", 17); alunos[2] = new Aluno ("Paula", 25); alunos[3] = new Aluno ("Samanta", 19); } private static void imprimeAlunosMaiores () { for (int n = 0; n < alunos.length; n++) { if (alunos[n].getIdade < 21) { System.out.println (aluno[n].getNome() + " tem " + aluno[n].getIdade() + "anos"); } } } } UFGD - LPI 05 - Joinvile Batista Junior 1010 Exercícios - 5 • 5.1 – Altere o programa inicial da seguinte forma : inclua o atributo sexo na classe Aluno (alterando também o construtor e criando o par de métodos de leitura e escrita), crie mais 2 alunos do sexo masculino e substitua o método imprimeAlunosMaiores pelo método imprimeAlunos (que recebe como argumentos: sexo, idade_min e idade_max). Utilize no método imprimeAlunos uma iteração decrescente para o comando for. • 5.2 – Crie o método imprimeCorPreferida recebendo cor como parâmetro e o chame no programa principal, de forma a imprimir uma cor. Utilize um comando switch neste método para imprimir a cor preferida. • 5.3 – Edite um programa com as seguintes entidades: Aluno (com atributo nome e referência a array de disciplinas), Disciplina (com atributos: titulo e n_creditos), e uma classe Principal (que crie 2 alunos e 4 disciplinas, associe 2 disciplinas por aluno, e imprima para cada nome de aluno o nome de suas disciplinas).
Compartilhar