الدرس 1 of 0
في تقدم

שיעור 20: לולאת do-while

הלולאה do-while                                        חזרה לשער הספר


גם הפעם, אולי יעלה על דעתכם לשאול למה אנחנו צריכים עוד לולאה? התשובה כמו בפעם האחרונה שבה למדנו על לולאת while, והיא שיש מקרים דווקא המבנה של לולאת do-while מתאים יותר להם.

נשתמש בלולאה do-while במצבים שרוצים לולאה שתבצע המחזור הראשון ללא תנאי אבל המשך שאר המחזורים מותנה בתנאי.

הוראת הלולאה מבקשת: תעשה מחזור ראשון ללא תנאי, אבל, ביצוע שאר המחזורים מותנה בתנאי.

דוגמא 1

גוף הלולאה הוא בין do  ל- while. הוא יתבציע פעם אחת ללא שום תנא, אבל כשבקרת התוכנית מגיעה להוראה while התנאי נבדק. אם התנאי מתקיים גוף הלולאה יתבציע שנית.

שימו לב, כי בלולאת do-while להבדיל מלולאת while אחרי התנאי יש את ה (;) -‘נקודה פסיק’ (semicolon), אולם אחרי התנאי בלולאת  while אין אותו. חשיבות ה-(;) בלולאת do-while היא למנוע שיוך ההוראות שאחרי ה- while בלולאת ה- do-while ללולאה עצמה.

על כן, קטע הקוד בדוגמא 1 מציג בעמודה את המספרים 0 עד 4.

דוגמא 2:

מה הוא הפלט לקטע זה?

תשובה:

קטע הקוד מציג את משפט הברכה “Ahlan Wasahlan” פעם אחת בלבד. למה לפי דעתכם?

 

כרגע נציג עוד דוגמא,

אבל, התלמידים מתבקשים לקרוא את השאלה ולנסות לפתור אותה לפני לעיין בפתרון. במידה ולא הצלחתם או נתקלתם בקשיים כלשהם תוכלו לעיין בפתרון.

אם הצלחתם לפתור את התרגיל תעשו השוואה עם הפתרון המוצע. ואם נתקלתם בקשיים ועיינתם בפתרון, אנא לא לעבור להבא; תנסו קודם לפתור את השאלה לבד אחרי שהבנתם את הפתרון לעומק.

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

דוגמא 3:

כתוב תוכנית שקולטת תווים של אותיות מלוח המקשים. אם התוו הוא של אות קטנה התוכנית מדפיסה אותה על המסך כאות גדולה. התוכנית ממשיכה לעשות זאת עד שנקלט תוו שאינו אות.

פתרון:

דוגמא 4:  (תווים עם לולאות)

כתוב תוכנית הקולטת רצף של תווים שהם תווי ספרות בלבד.

התוכנית מסכמת את ערך הספרות. התוכנית עוצרת אם נקלט תוו כלשהוא שאינו ספרה או הסכום עובר את הערך 98.

עזר:

‘0’ = 0x30

‘1’ = 0x31

פתרון: