Olá desenvolvedores, hoje vamos aprender a percorrer um array comparando os valores para descobrir entre eles qual é o maior. Já sabemos como declarar um array, percorrê-lo e exibir seus valores. É um exercício simples e super divertido o que faremos hoje, e muito comum em listas de exercícios de faculdade.
Ainda estamos trabalhando com arrays no contexto de vetores, isto é, array que possui apenas uma dimensão. O que faremos é implementar um código que nos permitirá descobrir qual é o maior número dentro de um array. O princípio se aplica também as listas. Iremos aproveitar a implementação do tutorial passado para descobrirmos qual é a maior nota inserida.
MAIOR NOTA DO ARRAY
Então vamos lá. O que temos implementado é que para cada disciplina percorrida temos a varredura das notas em uma estrutura de for aninhado. Como mostra o exemplo abaixo, onde apenas omitimos o escopo das respectivas estruturas de repetição.
for(Disciplina disc : aluno.getDisciplinas()){
for(int pos = 0; pos < disc.getNota().length; pos++){
}
}
É comum neste tipo de implementação trabalharmos com uma variável auxiliar que irá armazenar a nota e possibilitar a comparação até que tenhamos percorrido todo o array. Antes do for que está aninhado inicializaremos uma variável do tipo double.
double notaMax = 0.0;
Quando começarmos a percorrer o for buscando a maior nota teremos a posição igual a zero. Então pegaremos o valor desta posição e o armazenaremos na variável notaMax.
If(pos == 0){
notaMax = disc.getNota()[pos];
}
Se não, se a posição for diferente de zero e se a nota atual for maior que a nota anterior será armazenado no desvio da estrutura de decisão.
else{
if(disc.getNota()[pos] > notaMax){
notaMax = disc.getNota[pos];
}
}
E imprimiremos o resultado fora do for aninhado, veja a saída abaixo:
MENOR NOTA ARRAY
O principio lógico para descobrir o menor valor em um array é quase o mesmo aplicado para descobrir o maior valor, resguardado a uma única modificação. Iremos apenas inverter a comparação.
else{
if(disc.getNota()[pos] < notaMenor){
notaMenor = disc.getNota[pos];
}
}
Optamos também por mudar o nome da variável para adequá-la ao contexto. Entretanto, tal mudança é apenas uma boa prática, visto que em nada repercute no resultado da implementação.
Mas oque fizemos foi, se nota corrente for menor que a nota anteriormente armazenada, então a alocaremos na variável.
EM POUCAS PALAVRAS
Uma boa forma de ver como está sendo processado e de fato entender o que está acontecendo nos bastidores do nosso código, é debugando. O que fizemos hoje foi apenas utilizar a lógica de programação para descobrir qual foi o maior valor inserido no array.
Crie uma nova estrutura de array e implemente novamente este código, como já falamos inúmeras outras vezes a lógica de programação é base para você se tornar um desenvolvedor de sucesso. Estude e pratique. Nos vemos nos próximo tutorial.