Mencari Kontak
Termasuk bagian Logika dan Alur dalam perjalanan Lua di Coddy. Pelajaran 45 dari 54.
Tantangan
MudahImplementasikan fungsi pencarian untuk aplikasi daftar kontakmu. Saat pengguna memasukkan search, program harus meminta nama lalu menampilkan semua kontak yang cocok.
Dengan melanjutkan tantangan sebelumnya, tambahkan fungsi untuk menangani perintah search. Telusuri tabel contacts untuk menemukan kontak yang namanya cocok dengan istilah pencarian. Tampilkan semua kecocokan atau beri tahu pengguna jika tidak ada kontak yang ditemukan.
Persyaratan:
- Pertahankan semua kode dari tantangan sebelumnya (penyiapan, tampilan menu, perulangan utama, fungsi tambah, dan fungsi daftar)
- Saat pengguna memasukkan
search, cetak:Enter name to search: - Baca istilah pencarian menggunakan
io.read() - Gunakan
ipairs()untuk melakukan iterasi melalui tabelcontacts - Untuk setiap kontak, periksa apakah field
namecocok persis dengan istilah pencarian - Jika ditemukan kecocokan, cetak dengan format:
Found: [name] - [phone] - Jika tidak ditemukan kecocokan setelah memeriksa semua kontak, cetak:
Contact not found. - Perintah
add,list, danquitharus tetap berfungsi seperti sebelumnya - Perintah lainnya harus tetap mencetak
Command not yet implemented
Contoh interaksi:
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!Coba sendiri
-- 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
endSemua pelajaran di Logika dan Alur
1Iterasi Tabel Tingkat Lanjut
Iterasi dengan pairs()Iterasi dengan ipairs()pairs() vs. ipairs()Rangkuman: Lembar Karakter2Fungsi library tabel Lainnya
table.concat()Pembuatan tabel & unpack()table.sort()Pengurutan Kustom dengan FungsiRangkuman, Papan Skor Tertinggi5Proyek: Mesin Petualangan Teks
Persiapan Proyek: RuanganMenghubungkan Ruangan8Proyek: Daftar Kontak
Menyiapkan ProyekPerulangan UtamaLatihan sendiri: Compiler Lua online