Menu
CoddyTech

לולאת while

חלק מהיחידה יסודות במסלול ה-GDScript של Coddy. שיעור 44 מתוך 92.

לולאת for רצה פעם אחת עבור כל מספר בטווח. לולאת while ממשיכה לרוץ כל עוד תנאי הוא true:

var count := 3
while count > 0:
	print(count)
	count -= 1
print("Go!")
3
2
1
Go!

התנאי נבדק לפני כל איטרציה. כש־count הופך ל־0, הביטוי count > 0 הוא false, ולכן הלולאה נעצרת והתוכנית ממשיכה לאחריה. אם התנאי הוא false מלכתחילה, הבלוק לא מתבצע כלל.

הבלוק חייב לשנות משהו שהתנאי תלוי בו. כאן count -= 1 מקרב את count ל־0. בלעדיו, התנאי יישאר true והלולאה לעולם לא תסתיים.

השתמשו ב־while כשלא ידוע מראש כמה איטרציות תצטרכו. לדוגמה, הקוד הזה מוצא את החזקה הקטנה ביותר של 2 שגדולה מ־27:

var number := 27
var power_of_two := 1
while power_of_two <= number:
	power_of_two *= 2
print(power_of_two)

power_of_two מוכפל בכל איטרציה: 2, 4, 8, 16, 32. ב־32, הביטוי power_of_two <= number הוא false, ולכן התוכנית מדפיסה 32.

challenge icon

אתגר

קל

התוכנית קוראת מספר עשרוני אחד לתוך number.

השתמש בלולאת while כדי לחלק את number ב־2 כל עוד הוא גדול או שווה ל־3.5. לאחר מכן הדפס את התוצאה, שהיא הערך הראשון שקטן מ־3.5.

לדוגמה, עבור הקלט 15 הערכים הם 15, 7.5, 3.75 ו־1.875, ולכן התוכנית מדפיסה:

1.875

אם הקלט כבר קטן מ־3.5, הדפס אותו ללא שינוי. אל תשתמש בלולאת for.

נסו בעצמכם

extends Node

func _ready():
	var number := float(OS.read_string_from_stdin())
	# חלקו את number ב־2 כל עוד הוא גדול מ־3.5 או שווה לו, ואז הדפיסו אותו
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה יסודות

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