Menu
Coddy logo textTech

連絡先の検索

CoddyのLuaジャーニー「Logic & Flow」セクションの一部 — レッスン 45/54。

challenge icon

チャレンジ

簡単

連絡先リストアプリケーションの検索機能を実装してください。ユーザーが search と入力した際、プログラムは名前の入力を求め、一致するすべての連絡先を表示する必要があります。

前回のチャレンジを基に、search コマンドを処理する機能を追加します。contacts テーブルをループして、名前が検索語と一致する連絡先を探します。一致するものをすべて表示するか、連絡先が見つからない場合はその旨をユーザーに通知してください。

要件:

  • 前回のチャレンジのすべてのコード(セットアップ、メニュー表示、メインループ、追加機能、リスト表示機能)を保持してください。
  • ユーザーが search と入力した際、Enter name to search: と表示してください。
  • io.read() を使用して検索語を読み取ってください。
  • ipairs() を使用して contacts テーブルを反復処理してください。
  • 各連絡先について、name フィールドが検索語と完全に一致するかどうかを確認してください。
  • 一致するものが見つかった場合は、次の形式で表示してください:Found: [name] - [phone]
  • すべての連絡先を確認した後に一致するものが見つからなかった場合は、Contact not found. と表示してください。
  • addlistquit コマンドは引き続き以前と同様に動作する必要があります。
  • その他のコマンドは引き続き 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:
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:
search
Enter name to search:
Alice
Found: Alice - 555-1234

Enter command:
search
Enter name to search:
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 found.")
        else
            print("Contact List:")
            for i, contact in ipairs(contacts) do
                print(i .. ". " .. contact.name .. " - " .. contact.phone)
            end
        end
        print()
        
    elseif command == "quit" then
        print("Goodbye!")
        break
        
    else
        print("Command not yet implemented")
        print()
    end
end

Logic & Flowのすべてのレッスン