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.