Menu
Coddy logo textTech

연락처 삭제하기

Coddy Lua 여정의 로직 및 흐름 제어 (Logic & Flow) 섹션에 포함된 레슨. 54개 중 46번째.

challenge icon

챌린지

쉬움

연락처 목록 애플리케이션에 삭제 기능을 구현하세요. 사용자가 delete를 입력하면, program은 이름을 입력하도록 요청하고, 목록에서 해당 연락처를 찾아 삭제해야 합니다.

이전 challenge를 기반으로 delete command를 처리하는 Functionality을 추가하세요. contacts table을 반복하여 이름이 일치하는 연락처를 찾은 다음, table.remove()를 사용하여 목록에서 삭제하세요. 삭제가 successfully 완료되었는지 사용자에게 알려 주세요.

Requirements:

  • 이전 challenge의 모든 code(setup, menu Display, main loop, add, list, search Functionality)를 유지하세요
  • 사용자가 delete를 입력하면 다음을 출력하세요: Enter name to delete:
  • io.read()를 사용하여 이름을 read하세요
  • contacts table을 반복하기 위해 ipairs()를 사용하세요
  • 각 연락처에 대해 name 필드가 삭제할 이름과 정확히 일치하는지 확인하세요
  • 일치하는 항목을 찾으면 연락처의 index와 함께 table.remove()를 사용하여 삭제하세요
  • 삭제가 성공하면 다음을 출력하세요: Contact deleted successfully!
  • 모든 연락처를 확인한 후에도 일치하는 항목을 찾지 못하면 다음을 출력하세요: Contact not found.
  • list command를 사용했을 때 연락처가 없으면 다음을 출력하세요: No contacts available.
  • add, list, search, quit command는 이전과 동일하게 작동해야 합니다

Note: 이 challenge의 빈 목록 message는 No contacts available.입니다. 이전 lesson에서 다른 표현을 사용했더라도 이 exact string을 사용해야 합니다.

Example interaction:

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:
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:
delete
Enter name to delete:
Alice
Contact deleted successfully!

Enter command:
list
Contact List:
1. Bob - 555-5678

Enter command:
delete
Enter name to delete:
Charlie
Contact not found.

Enter command:
quit
Goodbye!

직접 해보기

-- Contact List Manager
local contacts = {}

-- Display welcome message
print("Welcome to Contact List Manager!")
print()

-- Display menu
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()
        
        table.insert(contacts, {name = name, phone = phone})
        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 == "quit" then
        print("Goodbye!")
        break
        
    else
        print("Command not yet implemented")
        print()
    end
end

로직 및 흐름 제어 (Logic & Flow)의 모든 레슨

직접 연습해 보세요: 온라인 Lua 컴파일러