Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução do Desafio

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        List<String> entrada;
        List<Integer> numero = new ArrayList<>();
        int maiorNumero = 0;

        System.out.print("Digite os números separados por espaço: ");
        entrada = Arrays.stream(scanner.nextLine().split(" ")).toList();

        for (String s : entrada){
            numero.add(Integer.parseInt(s));
        }

        for (int i : numero){
            if (i > maiorNumero){
                maiorNumero = i;
            }
        }

        System.out.println("O maior número é: " + maiorNumero);

    }
}
1 resposta

Olá, Pablo. Tudo bem com você?

Obrigado por compartilhar a sua resolução do desafio. O código atende à proposta de encontrar o maior número da lista utilizando um laço de repetição para comparar os valores. A leitura da entrada, a separação dos números com split(" "), a conversão para Integer e a comparação para identificar o maior valor foram organizadas de forma clara e coerente com o objetivo da atividade.

Há apenas um ponto que vale atenção. A variável maiorNumero foi inicializada com 0. Isso funciona quando existe pelo menos um número positivo na entrada, mas pode produzir um resultado incorreto caso a lista contenha apenas números negativos. Por exemplo, para a entrada -8 -3 -10, o programa exibiria 0, mesmo esse valor não estando na lista. Uma alternativa é inicializar maiorNumero com o primeiro elemento da lista, ou utilizar Integer.MIN_VALUE como valor inicial.

No contexto deste exercício, sua solução funciona corretamente para exemplos como 3 7 2 9 5, retornando 9 conforme esperado. Você também poderia fazer a comparação durante a leitura dos números, eliminando a necessidade de um segundo laço, embora a abordagem atual esteja adequada para fins de aprendizado.

Como você adaptaria essa solução para tratar entradas contendo apenas números negativos ou até mesmo uma lista vazia?

Parabéns pela resolução e por compartilhar seu código. Continue praticando e, sempre que surgir uma nova dúvida ou quiser mostrar outra solução, o fórum está à disposição.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!