Menu
CoddyTech

列出所有联系人

本课属于 Coddy Lua 学习旅程的“逻辑与流程”单元。第 44 课,共 54 课。

challenge icon

挑战

简单

为你的联系人列表应用实现列表功能。当用户输入 list 时,程序应以格式化的方式显示所有已存储的联系人。

在上一个挑战的基础上,添加处理 list 命令的功能。使用 ipairs() 遍历 contacts 表并显示每个联系人的信息。如果列表为空,请相应地告知用户。

要求:

  • 保留上一个挑战中的所有代码(初始化、显示菜单、主循环和添加功能)
  • 当用户输入 list 时,检查 contacts 表是否为空
  • 如果为空,打印:No contacts found.
  • 如果不为空,打印:Contact List:
  • 使用 ipairs() 遍历 contacts 表
  • 对于每个联系人,按以下格式打印:[index]. [name] - [phone]
  • add 和 quit 命令仍应像之前一样正常工作
  • 其他命令仍应打印 Command not yet implemented

交互示例:

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!

亲手试试

-- 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
end

逻辑与流程中的所有课

自己练习: Lua 在线编译器