No meu case 2 queria retornar todos os dados do array. _
Neste caso so consigo retornar 1 dado.
Nao achei uma logica ainda ;/
import java.util.InputMismatchException;
import java.util.Scanner;
public class ReceitaFederal {
/**
* Você deve criar um programa de apoio a receita federal.
Uma pessoa física tem nome, cpf e renda. Receba os dados de várias pessoas
de acordo com o desejo do usuário.
No término, abra um menu de opções para que o usuário possa escolher
entre as seguintes ações:
1- Listar todas as pessoas;
2- Apresentar a pessoa que tem a maior renda;
*/
public static void main(String[] args) {
int quantidadePessoas = lerInt("Informe a quantidade de pessoas: ", "Quantidade fora do limite permitido!", "Informe a quantidade em valor numerico!", 1, 10000);
PessoaFisica[] pessoafisica = new PessoaFisica[quantidadePessoas];
popularPessoa(pessoafisica);
imprime(pessoafisica, "\t#####Relatorio Geral de Cadastro#####\n");
}
public static void imprime(PessoaFisica[] pessoafisica, String cabecalho) {
int opcao = 0;
System.out.println("1- Listar todas as pessoas\n2- Apresentar a pessoa que tem a maior renda");
opcao = lerInt("Escolha uma opção do menu: ", "Escolha uma opcao de 1 a 2", "Insira um valor numerico", 1, 2);
switch (opcao) {
case 1:
System.out.println(cabecalho);
for (int i = 0; i < pessoafisica.length; i++) {
System.out.println("Nome: "+pessoafisica[i].nome);
System.out.println("Renda: "+pessoafisica[i].renda);
System.out.println("CPF: "+pessoafisica[i].cpf+"\n_______________");
}
break;
case 2:
System.out.println("Maior Renda: "+MaiorRenda(pessoafisica));
default:
break;
}
}
public static double MaiorRenda(PessoaFisica[] pessoafisica) {
double maiorRenda = 0;
for (int i = 0; i < pessoafisica.length; i++) {
if(pessoafisica[i].renda > maiorRenda){
maiorRenda = pessoafisica[i].renda;
}
}
return maiorRenda;
}
public static void popularPessoa(PessoaFisica[] pessoafisica) {
for (int i = 0; i < pessoafisica.length; i++) {
pessoafisica[i] = lerPessoaFisica();
}
}
private static PessoaFisica lerPessoaFisica() {
PessoaFisica pf = new PessoaFisica();
pf.nome= lerString("Insira o nome: ");
pf.renda = lerDouble("Insira a renda em R$:", "valor invalido!", "A Renda deve ser em R$!",1 , 100000);
pf.cpf= lerString("Insira o CPF: ");
return pf;
}
public static int lerInt(String msg,String erroRange,String erroConsole,int min , int max){
int valor = 0;
boolean erro;
do {
valor = lerInt(msg, erroConsole);
erro = valor < min || valor > max;
if(erro)
System.out.println(erroRange);
}while(erro);
return valor;
}
public static int lerInt(String msg, String erroConsole){
int valor = 0;
boolean erro;
do {
try {
erro = false;
valor = lerInt(msg);
} catch (InputMismatchException e) {
erro = true;
System.out.println(erroConsole);
}
} while(erro);
return valor;
}
public static int lerInt(String msg){
System.out.println(msg);
int valor = new Scanner(System.in).nextInt();
return valor;
}
public static String lerString(String msg){
System.out.println(msg);
String mensagem = new Scanner(System.in).nextLine();
return mensagem;
}
public static double lerDouble(String msg, String erroRange,String erroConsole, int min, int max){
double valor = 0;
boolean erro;
do {
valor=lerDouble(msg, erroConsole);
erro = valor < min || valor > max;
if(erro)
System.out.println(erroRange);
} while(erro);
return valor;
}
public static double lerDouble(String msg, String erroConsole){
double valor = 0;
boolean erro;
do {
try {
erro = false;
valor = lerDouble(msg);
} catch (InputMismatchException e) {
erro = true;
System.out.println(erroConsole);
}
}while(erro);
return valor;
}
public static double lerDouble(String msg){
System.out.println(msg);
double valor = new Scanner(System.in).nextDouble();
return valor;
}
}