Tratando Entradas Inválidas
Parte da seção Logic & Flow do Journey de Lua da Coddy — lição 47 de 54.
Desafio
FácilComplete seu aplicativo de lista de contatos adicionando o tratamento adequado para comandos de menu inválidos. Quando o usuário inserir um comando que não corresponda a nenhuma das opções disponíveis, o programa deve informá-lo e continuar em execução.
Com base no desafio anterior, adicione uma condição else para lidar com qualquer comando que não seja add, list, search, delete ou quit. Isso melhora a experiência do usuário ao fornecer um feedback claro quando um comando não reconhecido é inserido.
Requisitos:
- Mantenha todo o código do desafio anterior (configuração, exibição do menu, loop principal, funcionalidades add, list, search e delete)
- Adicione uma condição
elsepara lidar com qualquer comando que não corresponda às opções válidas - Quando um comando inválido for inserido, imprima:
Invalid command. Please try again. - O programa deve continuar em execução após exibir a mensagem de comando inválido
- Todos os comandos existentes (
add,list,search,delete,quit) devem continuar funcionando exatamente como antes
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:
add
Enter name:
Alice
Enter phone number:
555-1234
Contact added successfully!
Enter command:
show
Invalid command. Please try again.
Enter command:
remove
Invalid command. Please try again.
Enter command:
list
Contact List:
1. Alice - 555-1234
Enter command:
help
Invalid command. Please try again.
Enter command:
quit
Goodbye!Experimente você mesmo
-- Contact List Manager with Delete Functionality
local contacts = {}
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()
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 == "list" then
if #contacts == 0 then
print("No contacts available.")
else
print("Contact List:")
for i, contact in ipairs(contacts) do
print(i .. ". " .. contact.name .. " - " .. contact.phone)
end
end
print()
elseif command == "search" then
print("Enter name to search:")
local searchName = io.read()
local found = false
for i, contact in ipairs(contacts) do
if contact.name == searchName then
print("Found: " .. contact.name .. " - " .. contact.phone)
found = true
break
end
end
if not found then
print("Contact not found.")
end
print()
elseif command == "delete" then
print("Enter name to delete:")
local deleteName = io.read()
local found = false
for i, contact in ipairs(contacts) do
if contact.name == deleteName then
table.remove(contacts, i)
print("Contact deleted successfully!")
found = true
break
end
end
if not found then
print("Contact not found.")
end
print()
elseif command == "quit" then
print("Goodbye!")
break
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