Alguem pode me dar uma ajuda como eu faço para retornar o elemento de menor valor do campo idade dentre os elementos do vetor passado via parâmetro.
Menor valor Vetor
6 Respostas
public int getMenorValor(int [] vetor ){
int menorIdade = vetor [0];
for(int idade : vetor ){
if(menorIdade > idade){
menorIdade = idade;
}
}
return menorIdade;
}
Se uma array é assim, porem indico uma que de uma olhada em List ou Collection
Esqueci um detalhe o metodo pode lançar um erro de ArrayIndexOutOfBoundsException caso o array esteja vazio
Tente tratar o vetor fora por exemplo
no método principal ficariapublic static void main(String[] args) {
int[] idades = new int[] {50,45,99,35,42,18 }; // vetor de idades
int menorIdade = retornaMenorIdade(idades);
if(menorIdade < 1){
System.out.println("Não há menor idade");
}else{
System.out.println("A menor idade é: "+menorIdade);
}
}
public static int retornaMenorIdade(int[] idades) {
int aux = 999; // idade fictícia
for (int menor : idades) {
if (menor < aux) {
aux = menor;
}
}
if (aux == 999)
return 0; //idade não informada
return aux;
}
Não é uma boa prática determinar uma idade fictícia, isso ocasionalmente pode gerar problemas.
Eu faria algo +/- assim:
public static int retornaMenorIdade(int[] idades) {
int aux = -1; //idade invalida
if(idades != null && idades.length > 0) {
aux = idades[0];
for (int menor : idades) {
if (menor < aux) {
aux = menor;
}
}
}
return aux;
}
[]´s
Daniel
Beleza concordo, porém é necessário a verificação de idades negativas que não podem existir certo. Eu adicionaria mais uma clausula dentro do laço que se encontrar uma idade < 0 continue o laço e pule aquela idade, pois do contrario irá listar uma idade negativa;

Verdade, o loop não está validando isso, mas não concorda que esse tipo de validação deve ser feita no momento em que a idade é informada?
Pois se for feita em qualquer outro momento, como nesse método, provavelmente essa validação terá de ser feita em vários lugares ao invés de apenas um.
[]s
Daniel