0
I am studying Java and I have a problem in a code I wrote.
I need to read the name and age of 3 people and say the name of the youngest and the name of the oldest.
I know the best way for a large number of people would be to use two loops for ordination, but I’ve only done a few simple validations with if/else
just to complete the exercise, however, my mistake is happening in the loop I created to read 3 keyboard name and 3 ages.
The code gives a InputMismatchException
always in the second round.
Can someone 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.");
}
}
Cade the method
Pessoa.getNome()
?– Franchesco
I edited the code and now I’m getting an Indexoutofboundsexception. Above, I put my edition.
– leoSandrini