Menu
CoddyTech

תנאי סף להתאמה

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

תנאי סף מוסיף תנאי לתבנית. כתוב when ותנאי אחרי התבנית: התבנית מתאימה רק אם הערך תואם לתבנית וגם התנאי הוא true. תנאי סף קיימים מאז Godot 4.4.

var hp := 15
match hp:
	0:
		print("Defeated")
	var h when h < 20:
		print("Low health: ", h)
	_:
		print("Healthy")
Low health: 15

ב-GDScript אין תבניות טווח כגון 1..10. תבנית קישור עם תנאי סינון עושה את העבודה: var h when h < 20: מתאימה לכל ערך שמתחת ל-20 ונותנת לו את השם h.

כאשר תנאי השמירה הוא false, הפקודה match ממשיכה לתבנית הבאה. התבניות נבדקות מלמעלה למטה, ולכן הסדר קובע איזה בלוק יפעל:

var temp := 32
match temp:
	var t when t <= 0:
		print("Freezing")
	var t when t < 15:
		print("Cold")
	var t when t < 30:
		print("Warm")
	_:
		print("Hot")
Hot

התבנית השנייה לא זקוקה ל־t > 0: טמפרטורה של 0 או פחות כבר התאימה לראשונה. אפשר להשתמש בתנאי כלשהו כשומר, עם משתנים אחרים ועם and או or, והוא מתאים לכל תבנית: 5 when hard_mode: מתאים ל־5 רק כאשר hard_mode הוא true.

challenge icon

אתגר

קל

התוכנית קוראת גיל כמספר שלם אל age. השתמשו במשפט match עם תנאי שמירה כדי להדפיס את קבוצת הגיל:

  • 0 עד 12: Child
  • 13 עד 19: Teenager
  • 20 עד 64: Adult
  • 65 עד 120: Senior
  • כל מספר אחר: Invalid age

כל טווח כולל את שני הקצוות. עבור הקלט 15, הפלט הוא:

Teenager

נסו בעצמכם

extends Node

func _ready():
	var age := int(OS.read_string_from_stdin())
	# הדפס את קבוצת הגיל באמצעות match ותנאי שמירה
quiz iconבחנו את עצמכם

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

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

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