1
resposta

[Projeto] Posso melhorar?

import java.util.ArrayList;
import java.util.Scanner;

public class Aniversario {
    static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        System.out.println("Digite o nome do convidado (ou '!nome.equalsIgnoreCase(\"sair\")' para visualizar a lista, " +
                "'sair' para terminar):");
        String nome = leitura.nextLine();
        ArrayList <String> listaConvidados = new ArrayList<>();

        while (!nome.equalsIgnoreCase("sair") && (!nome.equalsIgnoreCase("ver"))){
            System.out.println(nome + " foi adicionado à lista de convidados.");
            listaConvidados.add(nome);
            System.out.println("Digite o nome do convidado (ou 'ver' para visualizar a lista, 'sair' para terminar):");
            nome = leitura.nextLine();
        }
        if ((nome.equalsIgnoreCase("ver"))) {
            System.out.println(listaConvidados.toString());
        }
    }
}
1 resposta

Olá! Como vai?

Seu código está funcional e não apresenta nenhum problema, mas dá para melhorar a clareza, organização e uso dos laços no contexto do curso.

Pontos importantes para melhorar:

  • O método main precisa ser public static para rodar corretamente.
  • O texto do println tem um trecho confuso com código Java misturado.
  • O comando ver poderia funcionar várias vezes, não só no final.
  • O Scanner deve ser fechado ao final.
  • Um do-while deixa o fluxo mais simples para leitura contínua.

Veja este exemplo:


import java.util.ArrayList;
import java.util.Scanner;

public class Aniversario {

    public static void main(String[] args) {
        Scanner leitura = new Scanner(System.in);
        ArrayList<String> listaConvidados = new ArrayList<>;
        String nome;

        do {
            System.out.println("Digite o nome do convidado, 'ver' para listar ou 'sair' para finalizar:");
            nome = leitura.nextLine();

            if (nome.equalsIgnoreCase("ver")) {
                System.out.println(listaConvidados);
            } else if (!nome.equalsIgnoreCase("sair")) {
                listaConvidados.add(nome);
                System.out.println(nome + " foi adicionado a lista.");
            }

        } while (!nome.equalsIgnoreCase("sair"));

        leitura.close();
    }
}
  • Esse codigo usa um do-while para repetir a leitura ate o usuario digitar sair.
  • Quando o valor digitado for ver, a lista e exibida.
  • Qualquer outro nome e adicionado ao ArrayList.

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado