Nome maior e menor?

Fiz esse programa que recebe um numero de alunos, ai se eu digitar 10 ele vai pedir 10 nomes, ate aqui tudo ok! Ai preciso, no final, informar qual é o maior e o menor nome, só que ele só está mostrando o maior!

public class maiormenor
{
  public static void main(String[] args)
  {
    String menor = "";
    String maior = "";
    int estudantes;
    int i = 0;
    
    estudantes = Entrada.leiaInt("Quantos estudantes tem na turma?");
    
    while (i < estudantes)
    {
      String n = Entrada.leiaString();
      if (n.length() > maior.length()) 
      {
        maior = n;
      }
      i = i + 1;
      if (n.length() < menor.length() )
      {
        menor = n;
      }
     
    }
    System.out.println("O menor nome é: "+menor);
    System.out.println("O maior nome é: "+maior);
  }
}

Coloque esse if logo após o leiaString()…

if (i == 0) {
    menor = n;
    maior = n;
}
...

Esse tipo de algorimto, tanto o menor quanto maior costumam ser a primeira entrada, por isso do if… a partir da segunda, ele consegue calcular corretamente… e se você não validar dessa forma, menor sempre será “” pegou, da mesma forma como foi no outro post que você fez sobre idades lembra?

1 curtida

Exemplo:

if (i == 0) {
    maior = nome;
    menor = nome;
} else {
    if (nome.length() > maior.length()) {
        maior = nome;
    }
    if (nome.length() < menor.length()) {
        menor = nome;
    }
}
2 curtidas

ahan, to ligado!

Obrigado mais uma vez galera! Desculpe estar fazendo muita pergunta, mas estarei em prova essa semana e estou praticando em casa e tentando resolver o maximo de dúvidas possivel…