Array

ola amigos
preciso fazer um programa que recebas números inteiros e armazene o numero dois arrays um par ou impar. se o numero for par inserir do array par, se o numero for impar no array impar

Se possível um breve explicação dos códigos inseridos

E o que você já fez para ser o nosso ponto de partida?

package trabalho.davi;
import java.util.Scanner;

public class cris {

public static void main(String[] args) {
    int numeros[6] = new int[6];
    
    Scanner teclado=new Scanner (System.in);
    
    System.out.println("Entre com o primiro valor");  
    numeros[0]=numeros.nextInt();
    
    System.out.println("Entre com o primiro valor");  
    numeros[1]=numeros.nextInt();
    
    System.out.println("Entre com o primiro valor");  
    numeros[2]=numeros.nextInt();
    
    System.out.println("Entre com o primiro valor");  
    numeros[3]=numeros.nextInt();
    
    System.out.println("Entre com o primiro valor");  
    numeros[4]=numeros.nextInt();
    
    System.out.println("Entre com o primiro valor");  
    numeros[5]=numeros.nextInt();

}

tentei assim mais nao consegui seguir

Ué, pensei ser javascript (atenção ao assunto que coloca no tópico ok?), nesse caso…

int pares[] = new int[6];
int impares[] = new int[6];
int totalPar = 0;
int totalImpar = 0;

Scanner teclado = new Scanner(System.in);

for (int i = 0; i < 6; i++) {
    System.out.println("Entre com o " + (i+1) + "º valor:"); //(i+1) é 1º, 2º...6º
    int numero = teclado.nextInt(); //precisa chamar o teclado criado e não numeros...

    if (numero % 2 == 0) { // % se chama módulo e pega o resto da divisão
        pares[totalPar] = numero;
        totalPar = totalPar + 1; // índice para o próximo
    } else {
        impares[totalImpar] = numero;
        totalImpar = totalImpar + 1; // índice para o próximo
    }
}

System.out.println("\nNúmeros pares encontrados:");
for (int i = 0; i < totalPar; i++) {
    System.out.print(pares[i] + " ");
}

System.out.println("\n\nNúmeros ímpares encontrados:");
for (int i = 0; i < totalImpar; i++) {
    System.out.print(impares[i] + " ");
}

Vai rachando a cuca ai, tentei ser o mais didático possível…

Você mesmo disse precisar de um array para os pares e outro para os impares, por qual motivo criou apenas numeros?

Uma variável numero serve para pegar o valor digitado pelo usuario e ver se é par ou impar para armazenar…

O for serve para “andar”, “percorrer” uma determinada quantidade de vezes, imagine se você precisar pegar 100 números, vai fazer numero[0], numero[1]… numero[99]? Meio cansativo não?

A variável i dentro de cada for (também conhecido como laço, loop, etc), é criado e usado apenas dentro dele, por isso a primeira instrução é int i = 0; ou seja, sua criação e inicialização…

Dentro do laço, há um operador % como disse acima, que pega o resto da divisão entre numero digitado e 2, se for zero, o número digitado é par, caso seja diferente de zero, o número é impar…

As variáveis totalPar e totalImpar servem para controlar o acesso aos arrays, colocando cada número digitado em seu devido espaço sem “buracos” já que o usuário pode alternar entre um par e um impar, dois impares, dois pares seguidos até chegar ao sexto e último numero digitado…

Dica: cuidado ao usar nextInt da classe Scanner, ela possui um bug que pode gerar comportamentos inesperados, mas isso fica para a próxima aula :joy:, bons estudos!

obrigado
vou refazer do zero pra mim pegar melhor a Sintaxe do java, e absorver melhor suas explicações.
é realmente criar 100 numeros seria pank kkk

boa explicação muito obrigado

1 curtida

Vou ajustar um pouco o código para ficar mais intuitivo… e reforço, preste bem atenção no assunto que coloca no tópico, você colocou javascript, sendo sua dúvida de Java, há muitos iniciantes no fórum isso pode deixa-los perdidos, bons estudos!

Obs: perceba que apenas retirei o numero lá na criação das variáveis e estou criando dentro do laço, afinal ele só viverá dentro do for, não faz sentido colocá-lo fora para esse caso…

Deixo material de qualidade para você estudar

https://www.caelum.com.br/apostila-java-orientacao-objetos/um-pouco-de-arrays/

certo vou tomar cuido nas postagem, vou estudar sim nessa apostila

Aproveito para te lançar um desafio!

Você “travou” a quantidade de números digitados em 6, seria interessante, já que você tem um objeto Scanner (teclado) pedir ao usuário quantos números ele pretende digitar e com isso, determinar o tamanho dos dois arrays o que acha?

Atenção: a ordem em que o teclado foi declarado importa, sugiro colocar no começo de main antes de todo mundo, bons estudos!

Atenção 2: essa quantidade capturada do usuário, servirá também para definir a quantidade de vezes que o primeiro for irá “rodar”, fica atento a isso!

Pesquise sobre o atributo length que todo array possui, vai te ajudar nessa!

no caso eu deveria dx em branco os valores ?

Quais você se refere?

nas variaveis
int pares[6] = new int[6];
int impares[6] = new int[6];

Você quer dizer sobre o desafio?

Se sim, na verdade seria algo assim…

int pares[] = new int[total];
int impares[] = new int[total];

Eu coloquei pares[] porque é comum em java e não causa erro, geralmente a linguagem c usa pares[6] ai confunde um pouco…

E no caso do java, o que determina o tamanho do array fica do lado direito da atribuição (sinal de igual) ou seja, new int[tamanho] e não do lado esquerdo…

Quanto ao total que substitui o 6 seria o valor digitado pelo usuário, como falei antes, o teclado te fornece isso, porém, precisa criá-lo ou posicioná-lo antes dessas variáveis aí…

Sobre o bug do nextInt, olha o que eu respondi aqui…

Vai estudando isso também pra se prevenir :joy:

sobre o desafio vou fazer
coloco o resultado amanha
ok ?

No problem man, te propus isso apenas para você mesmo se desafiar e até ter um plus para mostrar ao seu professor, abraço!