Menu
CoddyTech

Gabungkan Semuanya

Termasuk bagian Logika dan Alur dalam perjalanan GDScript di Coddy. Pelajaran 30 dari 78.

challenge icon

Tantangan

Mudah

Langkah terakhir merapikan perulangan dan menangani pilihan yang salah. Pertahankan semua yang kamu tulis pada langkah-langkah sebelumnya.

  1. Ganti rangkaian if / elif dalam perulangan dengan pernyataan match choice:, dengan satu pola untuk setiap pilihan dari "1" hingga "6". break di dalam pola tetap akan keluar dari perulangan while.
  2. Tambahkan pola wildcard _: untuk semua pilihan lainnya. Pola ini mencetak:
Invalid choice. Please try again.

Setelah pesan tersebut, perulangan menampilkan menu dan membaca pilihan berikutnya, seperti sebelumnya.

Coba sendiri

extends Node

func _ready():
	var contact_book := {}

	while true:
		display_menu()
		var choice := OS.read_string_from_stdin()
		if choice == "1":
			add_contact(contact_book)
		elif choice == "2":
			view_contact(contact_book)
		elif choice == "3":
			edit_contact(contact_book)
		elif choice == "4":
			delete_contact(contact_book)
		elif choice == "5":
			list_all_contacts(contact_book)
		elif choice == "6":
			break

func display_menu() -> void:
	print("Contact Book Menu:")
	print("1. Add Contact")
	print("2. View Contact")
	print("3. Edit Contact")
	print("4. Delete Contact")
	print("5. List All Contacts")
	print("6. Exit")

func add_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		print("Contact already exists!")
		return
	var phone := OS.read_string_from_stdin()
	var email := OS.read_string_from_stdin()
	var address := OS.read_string_from_stdin()
	contact_book[contact_name] = {"phone": phone, "email": email, "address": address}
	print("Contact added successfully!")

func view_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		var contact: Dictionary = contact_book[contact_name]
		print("Name: ", contact_name)
		print("Phone: ", contact["phone"])
		print("Email: ", contact["email"])
		print("Address: ", contact["address"])
	else:
		print("Contact not found!")

func edit_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		var contact: Dictionary = contact_book[contact_name]
		var phone := OS.read_string_from_stdin()
		var email := OS.read_string_from_stdin()
		var address := OS.read_string_from_stdin()
		if phone != "":
			contact["phone"] = phone
		if email != "":
			contact["email"] = email
		if address != "":
			contact["address"] = address
		print("Contact updated successfully!")
	else:
		print("Contact not found!")

func delete_contact(contact_book: Dictionary) -> void:
	var contact_name := OS.read_string_from_stdin()
	if contact_book.has(contact_name):
		contact_book.erase(contact_name)
		print("Contact deleted successfully!")
	else:
		print("Contact not found!")

func list_all_contacts(contact_book: Dictionary) -> void:
	if contact_book.is_empty():
		print("No contacts available.")
	else:
		for contact_name in contact_book:
			var contact: Dictionary = contact_book[contact_name]
			print("Name: ", contact_name)
			print("Phone: ", contact["phone"])
			print("Email: ", contact["email"])
			print("Address: ", contact["address"])
			print()

Semua pelajaran di Logika dan Alur

Latihan sendiri: Compiler GDScript online