Listando Todos os Contatos
Parte da seção Logic & Flow do Journey de Lua da Coddy — lição 44 de 54.
Desafio
FácilImplemente a funcionalidade de listagem para o seu aplicativo de lista de contatos. Quando o usuário inserir list, o programa deve exibir todos os contatos armazenados de forma formatada.
Com base no desafio anterior, adicione a funcionalidade para lidar com o comando list. Use ipairs() para iterar pela tabela contacts e exibir as informações de cada contato. Se a lista estiver vazia, informe o usuário adequadamente.
Requisitos:
- Mantenha todo o código do desafio anterior (configuração, exibição do menu, loop principal e funcionalidade de adição)
- Quando o usuário inserir
list, verifique se a tabelacontactsestá vazia - Se estiver vazia, imprima:
No contacts found. - Se não estiver vazia, imprima:
Contact List: - Use
ipairs()para iterar pela tabelacontacts - Para cada contato, imprima no formato:
[index]. [name] - [phone] - Os comandos
addequitainda devem funcionar como antes - Outros comandos ainda devem imprimir
Command not yet implemented
Exemplo de interação:
Welcome to Contact List Manager!
Available Commands:
add - Add a new contact
list - Display all contacts
search - Search for a contact
delete - Delete a contact
quit - Exit the program
Enter command:
list
No contacts found.
Enter command:
add
Enter name:
Alice
Enter phone number:
555-1234
Contact added successfully!
Enter command:
add
Enter name:
Bob
Enter phone number:
555-5678
Contact added successfully!
Enter command:
list
Contact List:
1. Alice - 555-1234
2. Bob - 555-5678
Enter command:
quit
Goodbye!Experimente você mesmo
-- Initialize contacts list
local contacts = {}
-- Display welcome message and menu
print("Welcome to Contact List Manager!")
print()
print("Available Commands:")
print("add - Add a new contact")
print("list - Display all contacts")
print("search - Search for a contact")
print("delete - Delete a contact")
print("quit - Exit the program")
print()
-- Main loop
while true do
print("Enter command:")
local command = io.read()
if command == "add" then
print("Enter name:")
local name = io.read()
print("Enter phone number:")
local phone = io.read()
local contact = {name = name, phone = phone}
table.insert(contacts, contact)
print("Contact added successfully!")
print()
elseif command == "quit" then
print("Goodbye!")
break
else
print("Command not yet implemented")
print()
end
endTodas as lições de Logic & Flow
1Iteração Avançada de Tabelas
Iterando com pairs()Iterando com ipairs()pairs() vs. ipairs()Revisão - Ficha de Personagem2Mais Funções da Biblioteca Table
table.concat()Construção de tabelas e unpack()table.sort()Ordenação personalizada com funçõesRecapitulação - Placar de recordes5Projeto: Engine de Aventura de Texto
Configuração do Projeto: A SalaConectando as Salas8Projeto: Lista de Contatos
Configuração do ProjetoO Loop Principal