Menu
CoddyTech

Alles zusammenführen

Teil des Abschnitts Logik & Ablaufsteuerung der GDScript-Journey von Coddy. Lektion 30 von 78.

challenge icon

Aufgabe

Einfach

Der letzte Schritt räumt die Schleife auf und behandelt ungültige Auswahlmöglichkeiten. Behalte alles bei, was du in den vorherigen Schritten geschrieben hast.

  1. Ersetze die if-/ elif-Kette in der Schleife durch eine match choice:-Anweisung mit einem Muster für jede Auswahl von "1" bis "6". break innerhalb eines Musters beendet weiterhin die while-Schleife.
  2. Füge das Platzhaltermuster _: für alle anderen Auswahlmöglichkeiten hinzu. Es gibt Folgendes aus:
Invalid choice. Please try again.

Nach der Meldung zeigt die Schleife wie zuvor das Menü an und liest die nächste Auswahl ein.

Probier es selbst

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()

Alle Lektionen in Logik & Ablaufsteuerung

Übe selbstständig: Online-GDScript-Compiler