1
resposta

Resolução do sistema de controle de acesso a convidados

import java.util.ArrayList;
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> nomes = new ArrayList<>();

        do {
            System.out.println("Digite o nome do convidado (ou \"ver\" para visualizar a lista, \"sair\" para terminar): ");
            String entrada = scanner.nextLine();

            if (entrada.equalsIgnoreCase("sair")) {
                System.out.println("Programa finalizado.");
                break;
            }

            if (entrada.equalsIgnoreCase("ver")) {
                System.out.println("Lista atualizada de convidados: " + nomes);
                continue;
            }

            if (nomes.stream().anyMatch(n -> n.equalsIgnoreCase(entrada))) {
                System.out.println("O nome " + entrada + " já está na lista de convidados.");
            } else {
                nomes.add(entrada);
                System.out.println(entrada + " foi adicionado(a) à lista de convidados.");
            }
        } while (true);

        scanner.close();
    }
}
1 resposta

Oi, Lucas, como vai?

Sua solução está muito bem pensada. O uso do do-while(true) com break e continue mostra um bom domínio sobre o controle de fluxo dos laços, e a verificação de duplicatas com stream().anyMatch() é uma abordagem elegante e eficiente.

Parabéns pelo exercício, foi muito bom acompanhar a sua solução.

Continue compartilhando suas resoluções no fórum, isso enriquece muito a comunidade.

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