I'm studying Java and I'm having a problem with a code I wrote. Home
I need to read the name and age of 3 people and say the name of the youngest and the name of the oldest. Home
I know the best way for a large number of people would be to use two loops for sorting, but I just did a few simple validations with if/else
just to complete the exercise, but my mistake is happening in the loop I created to read 3 name and 3 ages of the keyboard. Home
The code gives InputMismatchException
always on the second loop.
Can anyone help me?
import java.util.Scanner;
import java.util.ArrayList;
public class Exercicio2 {
static class Pessoa{
String nome;
int idade;
Scanner input = new Scanner(System.in);
public void setNome(){
System.out.println("Insira o nome:");
nome = input.next();
input.nextLine();
}
public void setIdade(){
System.out.println("Insira a idade:");
idade = input.nextInt();
input.nextLine();
}
}
static public void main(String[] args){
ArrayList<Pessoa> pessoa = new ArrayList<Pessoa>();
Pessoa p = new Pessoa();
Pessoa aux = new Pessoa();
int i = 0;
int j = 0;
for(i = 0; i< 3; i++){
p.setNome();
p.setIdade();
pessoa.add(i,p);
System.out.println( pessoa.toString() );
System.out.println( pessoa.size() );
}
for(i = 0; i < 3; i++){
for(j = 0; j < 3; j++){
if(pessoa.get(i).idade > pessoa.get(j).idade){
aux.idade = pessoa.get(i).idade;
pessoa.get(i).idade = pessoa.get(j).idade;
pessoa.get(j).idade = aux.idade;
}
}
}
System.out.println(pessoa.get(i).nome + " é a pessoa mais nova e " + pessoa.get(j).nome + " é a mais velha.");
}
}