Baixe o app para aproveitar ainda mais
Prévia do material em texto
Arrays, decisões e repetições. • Um array é uma sequência de N grupos de bytes adjacentes (lado-a-lado) na memória, em que N >= 1. • Cada um dos N grupos de bytes é tratado nos programas como sendo uma variável, porém todas com o mesmo nome, e diferenciadas entre si por um índice inteiro, a partir de zero, escrito entre colchetes. • Quando criamos um array em um programa devemos declarar o nome do array (nome dos elementos) e um tipo de dados (seguido por colchetes), este será o tipo de conteúdo de todos os elementos do array. • Isso faz com que os arrays sejam chamados de estruturas de dados “homogêneas”. Exemplo: int[] vet; Vemos que falta ainda declarar quantos elementos terá o array. Isto se faz de dois modos: de modo explícito como na sintaxe abaixo: int[] vet = new int[5]; o que equivale a int[] vet; vet = new int[5]; ou de modo implícito já especificando os valores dos elementos do array. Por exemplo: int[] vet = { 2, 4, -1, 0, 1 }; Depois de declarado o array, cada elemento é acessado através do nome do array seguido por seu índice entre colchetes, e pode ser tratado como uma variável comum. Exemplo: vet[0] = 23; x = 2 * vet[2]/vet[1]; System.out.println(vet[0]); Repetições • Uma necessidade comum nos programas é repetir a execução de trechos de programa, isto é, fazer o que se chama de um “loop”. • O número de repetições deve ser controlado através de um teste que é uma expressão lógica cujo valor (true ou false) determina se a repetição ocorre ou não. • Java tem comandos de repetição com teste de controle no início do loop ou no final do loop. O comando de loop com o teste no início é: while (condição) { . . . . . . } O comando funciona de tal modo que “enquanto” a condição for verdadeira, o que estiver dentro das chaves será executado. Dentro das chaves pode haver qualquer sequência de instruções, inclusive outros loops. O comando com teste no final tem funcionamento análogo: do { . . . . . . } while (condição); Exemplo: int i = 0; while (i<10) { System.out.println(“i=”+i); i++; } • Outra aplicação muito comum para as repetições é o processamento de arrays. • Monta-se um loop de modo que, a cada execução, uma variável que é usada como índice dos elementos do array tem seu valor alterado. Desta forma percorre-se o array para processar seus elementos. int[] a = { 1,2,3,5 }; int i = 0; while (i<4) { System.out.println(a[i]); i++; } Outro comando muito usado é uma alternativa ao comando while de teste no início, e é apenas uma forma diferente de escrever o comando em que se gasta menos linhas de programa. O mesmo trecho de programa do exemplo anterior poderia ser escrito assim: int[] a = { 1,2,3,5 }; int i; for (i=0;i<4;i++) { System.out.printlna[i]); } A sintaxe do comando for usa três expressões: for (exp1; exp2; exp3) { . . . } Funciona como while da seguinte forma: exp1; while (exp2) { . . . exp3; } Decisões Uma habilidade importante dos programas é seguir sequências diferentes de instruções dependendo de uma determinada condição ser verdadeira ou falsa. Como em outras linguagens, Java tem um comando if que é o mais usado nessas situações. Sua sintaxe é: if (condição) { . . . . . . } else { . . . . . . } Exemplo: Ler 5 valores pelo teclado e imprimir a soma deles. import java.util.Scanner; . . . . Scanner s = new Scanner(System.in); double soma = 0; for(int k=0; k<5; k++) { System.out.println(“valor: =”); double d = s.nextDouble(); soma = soma + d; } System.out.println(“Soma=”+soma); OBS: não precisamos de array. Exemplo: ler 5 valores pelo teclado e imprimir quantos são maiores que 10: import java.util.Scanner; . . . . Scanner s = new Scanner(System.in); int cnt = 0; for(int k=0; k<5; k++) { System.out.println(“valor: =”); double d = s.nextDouble(); if (d>10) cnt++; } System.out.println(“maiores q 10=”+cnt); OBS: Usamos decisão para considerar APENAS os maiores que 10 Exemplo: ler 5 inteiros pelo teclado e (depois) imprimir os ímpares: import java.util.Scanner; . . . . Scanner s = new Scanner(System.in); int[] a = new int[5]; for(int k=0; k<5; k++) { System.out.println(“valor: =”); a[k] = s.nextInt(); } System.out.println(“impares…”); for(int k=0; k<5; k++) { if (a[k]%2==1) { System.out.println(a[k]); } }
Compartilhar