Tenho que implementar um array com os números pares de outro array, não sei como fazer isso, parei nessa parte do código:
int[] vetorPar = new int[10];
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < vetor.length; i++) {
if ((vetor[i] % 2) == 0) {
}
}
Por favor, podem me ensinar?
Faça um LOOP (do, while, for, etc) percorra todo seu array e faça a seguinte verificação:
Divida seu número por 2, se resto do número em questão for = 0 então o número é par, se não é impar. Pegue esse numero identificado na verificação e adicione em seu novo array com números pares.
Para pegar o resto de uma divisão utilize o operador %
10 % 2
int[] vetorPar = new int[10];
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < vetor.length; i++) {
if ((vetor[i] % 2) == 0) {
}
}
Fiz esse loop, não sei como “adiciona” no novo vetor
Você tem que ter um contador para saber em qual posição de vetorPar
deve ir o número:
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0; // posição no vetorPar
for (int i = 0; i < vetor.length; i++) {
if ((vetor[i] % 2) == 0) {
vetorPar[cont] = vetor[i]; // adiciona no vetorPar
cont++; // vai para a próxima posição
}
}
Também inicializei vetorPar
com new int[vetor.length]
(o mesmo tamanho de vetor
), já que ele vai no máximo ter a mesma quantidade de elementos de vetor
(se todos forem pares, por exemplo).
Como arrays têm tamanho fixo, no exemplo acima somente 2 números pares foram colocados em vetorPar
(ficaram 3 posições “sobrando”), então para mostrar os pares eu não posso ir até vetorPar.length
, tenho que ir apenas até a quantidade de pares que encontrei (por exemplo, se eu quisesse imprimir os pares):
System.out.println("Os númeeros pares são:");
for (int i = 0; i < cont; i++) {
System.out.println(vetorPar[i]);
}
E só pra constar, você também pode usar o enhanced for para iterar por vetor
:
int[] vetor = new int[] { 1, 2, 3, 4, 5 };
int[] vetorPar = new int[vetor.length];
int cont = 0;
for (int n : vetor) { // usando enhanced for
if (n % 2 == 0) {
vetorPar[cont] = n;
cont++;
}
}
Só não daria para usar em vetorPar
, porque como já explicado, nem todas as posições estarão ocupadas, então neste caso teria que iterar até cont
mesmo.
1 curtida