1. Exemplos úteis de como trabalhar com arrays:
Acho que chegou a hora de passar para algumas tarefas práticas. Começaremos com alguns dos mais simples:
| Preenchendo uma matriz de 10 números com os números de 0 a 9: |
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = i;
}
|
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Atribua os valores de 0 a 9 às células
|
| Preenchendo uma matriz de 10 números com os números de 1 a 10: |
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = i + 1;
}
|
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Atribua os valores de 1 a 10 às células
|
| Preenchendo uma matriz de 10 números com os números de 10 a 1: |
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = 10 - i;
}
|
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Atribua os valores de 10 a 1 às células
|
2. Exibição de números na ordem inversa
Agora vamos passar para exemplos mais complexos e interessantes. Começaremos com a seguinte tarefa: ler 10 números do teclado e exibi-los na ordem inversa.
Sabemos ler números no teclado. Mas como lemos 10 números? Poderíamos, é claro, criar 10 variáveis: a1, a2, etc. Mas isso seria muito inconveniente. E se tivéssemos que ler em 100 números? Criaríamos 100 variáveis? Acontece que acabamos de aprender sobre arrays, que são criados para armazenar muitos valores.
O código para leitura em 10 valores ficaria mais ou menos assim (este trecho apareceria dentro do mainmétodo):
Scanner console = new Scanner(System.in);
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = console.nextInt();
}
|
- Criar um
Scannerobjeto
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Leia um número do teclado e salve-o na próxima célula da matriz
|
Mas como você imprime os valores do array na ordem inversa?
Para isso, precisamos de mais um loop, onde iassumiremos valores de 9 a 0 (lembrando que a quantidade de índices do array começa em 0). O código final do programa será mais ou menos assim:
Scanner console = new Scanner(System.in);
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = console.nextInt();
}
for (int i = 9; i >= 0; i--) {
System.out.println(array[i]);
}
|
- Criar um
Scannerobjeto
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Leia um número do teclado e salve-o na próxima célula da matriz
- Loop de 9 a 0 (inclusive)
- Exibir a próxima célula na matriz
|
3. Encontrando o elemento mínimo em uma matriz
Vamos dar uma olhada em uma tarefa muito interessante e comum: encontrar o elemento mínimo em um array. Pegaremos o código que usamos para preencher o array na tarefa anterior:
Scanner console = new Scanner(System.in);
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = console.nextInt();
}
|
- Criar um
Scannerobjeto
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Leia um número do teclado e salve-o na próxima célula da matriz
|
Agora tudo o que precisamos fazer é escrever o código que encontrará o elemento mínimo no array e exibi-lo na tela. Como você faz isso?
Bem, para encontrar o elemento mínimo, você precisa:
- Tome o primeiro elemento da matriz como o "mínimo atual".
- Compare todos os elementos do array com ele um por um
- Se o próximo elemento for menor que o "mínimo atual", atualize o valor do "mínimo atual"
É assim que ficará no código:
Scanner console = new Scanner(System.in);
int[] array = new int[10];
for (int i = 0; i < 10; i++) {
array[i] = console.nextInt();
}
int min = array[0];
for (int i = 1; i < 10; i++) {
if (array[i] < min)
min = array[i];
}
System.out.println(min);
|
- Criar um
Scannerobjeto
- Crie um objeto de matriz de 10 elementos
- Loop de 0 a 9 (inclusive)
- Leia um número do teclado e salve-o na próxima célula da matriz
- O elemento zero do array é tomado como o número mínimo
- Loop de 1 a 9 (inclusive)
- Se o elemento atual for menor que o "mínimo atual"
- então atualize o valor do "mínimo atual"
- Exibir o número mínimo encontrado na tela
|
GO TO FULL VERSION