Menu
CoddyTech

בדיקות חברות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 10 מתוך 78.

את/ה כבר בודק/ת חברות באמצעות in ו־not in: "cat" in pets מחפש איבר במערך, ו־"ell" in "hello" מחפש טקסט בתוך מחרוזת. שלושה מקרים נוספים עולים כל הזמן.

במילון, האופרטור dictionary in בודק רק את המפתחות. כדי לחפש ערך, בדוק את המערך שמוחזר על ידי values():

var grades := {"Alice": 85, "Bob": 90}
print("Alice" in grades)
print(90 in grades)
print(90 in grades.values())
true
false
true

בדיקת חברות בודקת גם טיפוסים. טקסט שנקרא באמצעות OS.read_string_from_stdin() הוא מחרוזת, והמחרוזת "90" אינה המספר השלם 90:

var scores := [70, 90]
print("90" in scores)
print(int("90") in scores)
false
true

מערך קבוע של ערכים מותרים עם in מחליף שרשרת ארוכה של or, והוא פועל גם בתנאי שמירה:

const DIRECTIONS = ["north", "south", "east", "west"]
var dir := "west"
match dir:
	var d when d in DIRECTIONS:
		print("Going ", d)
	_:
		print("You cannot go there")
Going west
challenge icon

אתגר

קל

לתוכנית יש מערך names עם שמות התלמידים בכיתה ומילון grades עם התלמידים שכבר קיבלו ציון. היא קוראת שם של תלמיד לתוך student וציון לתוך grade (כטקסט).

הדפיסו שלוש שורות:

  1. NAME is in the class. או NAME is not in the class., על ידי בדיקה של names
  2. NAME has a grade. או NAME has no grade., על ידי בדיקת המפתחות של grades
  3. Someone scored GRADE. או Nobody scored GRADE., על ידי בדיקת הערכים של grades

החליפו את NAME ואת GRADE בקלט. עבור הקלטים Dana ו-85, הפלט הוא:

Dana is in the class.
Dana has no grade.
Someone scored 85.

נסו בעצמכם

extends Node

func _ready():
	var names := ["Alice", "Bob", "Charlie", "Dana"]
	var grades := {"Alice": 85, "Bob": 90, "Charlie": 78}
	var student := OS.read_string_from_stdin()
	var grade := OS.read_string_from_stdin()
	# הדפס את שלוש השורות
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר GDScript אונליין