Olá pessoal, boa tarde, estou tendo um problema de Exception in thread “main” java.lang.NullPointerException no código abaixo e não sei por que, podem me ajudar? Grato
import java.util.Scanner;
public class Exercicio3 {
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
int numPessoas;
String escolhaSexo;
String escolhaOlhos;
String escolhaCabelo;
System.out.println("Informe a quantidade de pessoas na pesquisa: ");
System.out.print("-> ");
numPessoas = scan.nextInt();
Pessoa[] pessoa = new Pessoa[numPessoas];
for(int i = 0; i < numPessoas; i++){
System.out.println("");
pessoa[i] = new Pessoa();
System.out.println("Informe o nome da pessoa "+ (i+1));
System.out.print("-> ");
pessoa[i].setName(scan.next());
System.out.println("Escolha o sexo de "+ pessoa[i].getName());
System.out.println("1 - Masculino");
System.out.println("2 - Feminino");
System.out.print("-> ");
escolhaSexo = scan.next();
while(!(escolhaSexo.equals("2")) && !(escolhaSexo.equals("1"))){
switch (escolhaSexo) {
case "1":
pessoa[i].setSexo("Masculino");
break;
case "2":
pessoa[i].setSexo("Feminino");
break;
default:
System.out.println("");
System.out.println("Opção inválida, escolha a opção 1 ou 2");
System.out.print("-> ");
escolhaSexo = scan.next();
}
}
System.out.println("");
System.out.println("Escolha a cor dos olhos de "+ pessoa[i].getName());
System.out.println("1 - Azuis");
System.out.println("2 - Verdes");
System.out.println("3 - Castanhos");
System.out.print("-> ");
escolhaOlhos = scan.next();
while(!(escolhaOlhos.equals("1")) && !(escolhaOlhos.equals("2")) &&
!(escolhaOlhos.equals("3"))){
switch (escolhaOlhos) {
case "1":
pessoa[i].setOlhos("Azuis");
break;
case "2":
pessoa[i].setOlhos("Verdes");
break;
case "3":
pessoa[i].setOlhos("Castanhos");
break;
default:
System.out.println("");
System.out.println("Opção inválida, escolha uma opção de 1 a 3");
System.out.print("-> ");
escolhaOlhos = scan.next();
}
}
System.out.println("");
System.out.println("Escolha a cor do cabelos de "+ pessoa[i].getName());
System.out.println("1 - Louro");
System.out.println("2 - Castanho");
System.out.println("3 - Preto");
System.out.print("-> ");
escolhaCabelo = scan.next();
while(!(escolhaCabelo.equals("1")) && !(escolhaCabelo.equals("2")) &&
!(escolhaCabelo.equals("3"))){
switch (escolhaCabelo) {
case "1":
pessoa[i].setCabelo("Louro");
break;
case "2":
pessoa[i].setCabelo("Castanho");
break;
case "3":
pessoa[i].setCabelo("Preto");
break;
default:
System.out.println("");
System.out.println("Opção inválida, escolha uma opção de 1 a 3");
System.out.print("-> ");
escolhaCabelo = scan.next();
}
}
System.out.println("");
System.out.println("Informe a idade de "+ pessoa[i].getName());
System.out.print("-> ");
pessoa[i].setIdade(scan.nextInt());
}
System.out.println("");
String pessoaVelha = "";
int maior = pessoa[0].getIdade();
for(int i = 0; i <numPessoas; i++){
int idade = pessoa[i].getIdade();
if(idade >= maior){
maior = idade;
pessoaVelha = pessoa[i].getName();
}
}System.out.println(pessoaVelha +" é pessoa mais velha e tem " + maior + " anos");
System.out.println("");
double percent;
int contagem = 0;
for(int i = 0; i < numPessoas; i++){
String sexo = pessoa[i].getSexo(),
olhos = pessoa[i].getOlhos(),
cabelo = pessoa[i].getCabelo();
int idade = pessoa[i].getIdade();
if((sexo.equals("Feminino")) && ((idade >= 18) && (idade <= 35))
&& (olhos.equals("Verdes")) && (cabelo.equals("Louro"))){
contagem += 1;
}else{}
}percent = (100*contagem)/numPessoas;
System.out.println("A porcentagem de pessoas do sexo feminino com idade entre 18 e 35 anos, "
+ "com olhos verdes e cabelos louros é de "+percent+"%");
}
}