Buscar

Arrays, Decisões e Repetições em Java

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]); 
} 
}

Continue navegando