1
resposta

Resolução

/**
 * Maria está preparando um evento de aniversário e quer organizar a lista de convidados.
 * Ela precisa de um sistema que:
 *
 * Exiba a lista de convidados já cadastrados caso o usuário digite "ver".
 * Adicione novos nomes à lista, caso o nome não esteja lá.
 * Caso o nome já esteja na lista, o programa deve informar que o nome já foi registrado.
 * O programa deve permitir que Maria continue a adicionar nomes até ela digitar "sair".
 * Ajude Maria e faça o código para este sistema.
 */

package com.github.lucasdevrj.exercicios;

import java.util.Scanner;

public class SistemaControleAcessoConvidados {
    public static void main(String[] args) {
        String menu = "Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar):";
        String[] convidados = new String[50];
        int indice = 0;
        String resposta = "";
        boolean jaFoiConvidado = false;

        Scanner entrada = new Scanner(System.in);

        do {
            System.out.print(menu);
            resposta = entrada.nextLine();
            if (resposta.isBlank()) {
                System.out.println("Digite nome, ver ou sair.");
                continue;
            }
            boolean ehNome = !resposta.equalsIgnoreCase("ver")
                    && !resposta.equalsIgnoreCase("sair");
            if (ehNome) {
                int quantidadeDeConvidados = convidados.length;
                for (int i = 0; i < quantidadeDeConvidados; i++) {
                    if (resposta.equalsIgnoreCase(convidados[i])) {
                        jaFoiConvidado = true;
                        System.out.printf("O nome %s já está na lista de convidados.\n", resposta);
                    }
                }
                if (!jaFoiConvidado) {
                    convidados[indice] = resposta;
                    indice++;
                    System.out.printf("%s foi adicionado à lista de convidados.\n", resposta);
                }
            } else if (resposta.equalsIgnoreCase("ver")) {
                System.out.print("Lista atualizada de convidados: ");
                for (String convidado : convidados) {
                    if (convidado != null) {
                        System.out.print(convidado + ", ");
                    }
                }
                System.out.println();
            }
            jaFoiConvidado = false;
        } while (!resposta.equalsIgnoreCase("sair"));
        entrada.close();
    }
}

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
Tudo bem?

1 resposta

Olá, Lucas! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o array de Strings para armazenar os convidados com Java, utilizou muito bem o equalsIgnoreCase para comparar entradas de forma flexível e ainda compreendeu a importância da condicional if para controlar as opções do menu.

Uma dica interessante para o futuro é aplicar uma estrutura dinâmica como ArrayList, que facilita a adição e remoção de elementos sem precisar definir um tamanho fixo. Assim:

import java.util.ArrayList;

ArrayList<String> convidados = new ArrayList<>();

convidados.add("Maria");
convidados.add("João");

System.out.println(convidados);

Isso faz a lista crescer conforme necessário, tornando o código mais flexível e simples de manter.

Conteúdos relacionados

Alguns materiais podem estar em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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