Menu
CoddyTech

编辑联系人

本课属于 Coddy GDScript 学习旅程的“逻辑与流程”单元。第 27 课,共 78 课。

challenge icon

挑战

简单

处理选项 3,编辑联系人。保留你在前面步骤中写的所有内容。

编写 edit_contact(contact_book: Dictionary)。它会读取一个姓名。

  • 如果姓名不在 contact_book 中,打印 Contact not found!,不再读取其他内容。
  • 否则,按顺序读取三行:新电话号码、新邮箱和新地址。空行表示“保留当前值”。更新非空字段,然后打印 Contact updated successfully!

例如,如果通讯录中有 Alice,且选项 3 后的输入是:

Alice
987-654-3210

456 Elm St

Alice 的电话号码会变为 987-654-3210,地址会变为 456 Elm St,邮箱则保持不变。

在循环中,为 "3" 添加一个 elif 分支,调用 edit_contact(contact_book)。

亲手试试

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 == "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!")

逻辑与流程中的所有课

自己练习: GDScript 在线编译器