Verificação PAR IMPAR em Java

Este código mostra se os números inteiros digitados são par ou impar. Eu gostaria de fazê-lo para verificar a quantidade de números que eu quisesse. Ele não está funcionando como eu quero. Acho que o problema está no Array. Alguém pode me dar uma dica? Grato!

import java.util.Scanner;
public class ParImpar {

public static void main(String[] args){


int v[]= new int[10];
int i=0;
int n=0;
int c=0;


while(n!=-1){
	
Scanner ler = new Scanner(System.in);
n = ler.nextInt();
	
	
	v[i]=n;

i++;
c++;			
}
for(i=0; i<=c-2; i++){
	
	if(v[i]%2==0){
		
		System.out.println("PAR");
	}
	
	else{
		
		System.out.println("IMPAR");
	}
	
}


}

}

acredito que sua logica foi essa

public static void main(String[] args) {
	Scanner ler = new Scanner(System.in);		
	int v[]= new int[10];
		for(int i = 0; i < v.length ; i++) {
			v[i] = ler.nextInt();
		}
		for(int i = 0 ; i < v.length ; i++){
			if(v[i]%2==0){
				System.out.println(v[i] + " é PAR");
			}
			else{	
				System.out.println(v[i] + " é IMPAR");
			}	
		}
		}
1 curtida

Vamos separar isso em duas partes.
Quando falamos em arrays ou vetores

int v[] = new int[10];

Estamos falando de uma estrutura com limite de tamanho (número de posições).
Isso é totalmente incoerente com “quantidade de números que quiser”. Afinal, se você precisa delimitar a quantidade de itens que um vetor poderá armazenar, nunca poderá ter a quantidade que quiser, certo?
Porém, há meios para deixar isso um pouco mais flexível, por exemplo

int repeticoes;
System.out.println("Quantos números devem ser lidos?");
repeticoes = Integer.parseInt(sc.nextLine());

Assim, você pode informar quantas vezes deseja repetir o processo de leitura dos números. Ah, como fica o vetor?

v[] = new int[repeticoes];

Não é a solução mais bonita, mas, vai funcionar.
Outra possibilidade é o uso de Vector ou mesmo de List, porém, isso implicaria em você já ter estudado estas estruturas. Se não estudou, não pule etapas, vá evoluindo devagar.

3 curtidas

Muito obrigado pela ajuda. Foi de grande ajuda, um abraço.