
do, ובסופה מופיעה while עם התנאי בסוגריים. נקודה-פסיק בסוף היא חלק מהתחביר.הטקסט המלא של הדקות הראשונות בהרצאה «לולאת Do - While» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים ללולאה הבאה בתכנות והלולאה נקראת לולאת do while. לולאת do while היא קצת דומה ללולאת while ולדבר ראשון כדאי שנבין מה ההבדל ביניהם.
אם אני משתמש בלולאת while אז יש לנו כאן מבנה כזה אנחנו רושמים את המילה while בתוך הסוגריים שלה יש לנו את התנאי ובתוך המסולסלים יש לנו את הפקודות של הלולאה זאת אומרת מה שהמחשב מבצע זה ראשית הוא בודק את התנאי אם התנאי true הוא ממשיך ומבצע את פקודות הלולאה אם התנאי false אז הוא כמובן לא מבצע את פקודות הלולאה
וממשיך בתוכנית אבל בלולאת while יכול להיות מצב שבפעם הראשונה שהתנאי נבדק כבר בפעם הראשונה הוא שווה ל false ולכן פקודות הלולאה לא התבצעו אפילו פעם אחת בואו נראה מה המבנה של לולאת do while במילה do while אנחנו כותבים כאן את המילה do וכאן אנחנו מבצעים את המילה while עם בדיקת התנאי וחשוב מאוד חלק מהתחביר של הלולאה זה נקודה פסיק כאן.
הנקודה פסיק הזאת חשובה כי היא חלק מהתחביר עצמו של הלולאה. מה המחשב מבצע? בגלל שפקודות הלולאה נמצאות לפני בדיקת התנאי המחשב קודם כל מבצע פעם אחת את פקודות הלולאה ורק אז הולך ובודק את התנאי.
יכול להיות שהתנאי הזה true, יכול להיות שהתנאי הזה על ההתחלה false, אבל גם אם התנאי על ההתחלה false, עדיין המחשב ביצע פעם אחת את פקודות הלולאה.
אם התנאי שווה לtrue, כמובן המחשב ממשיך ומבצע שוב פעם את פקודות הלולאה פעם אחת, וחוזר לבדוק שוב את התנאי. אז בואו ניישם את זה בתרגיל. בואו ניקח את הדוגמה שראינו בלולאת while, שבה היוזר מכניס מספרים שוב ושוב, ועבור כל מספר אנחנו רוצים להציג לו את הספרה הימנית.
כאשר אנחנו ביצענו את זה, ביצענו את זה עם לולאת while, ואנחנו בנינו את זה בצורה כזאת שהמשתמש מכניס מספרים עד שהוא מכניס את המספר 0, ועבור כל מספר אנחנו מציגים לו את הספרה הימנית שלו, או בעצם עד שהמשתמש מכניס 0 או שלילי, למעשה זה היה.
אנחנו רוצים לבצע משהו דומה. אנחנו רוצים בוא נניח לקלוט מהמשתמש שוב ושוב מספרים עד שהוא מכניס 0 עבור כל מספר אנחנו רוצים להציג את הספרה הימנית שלו כולל ה-0 שמסיים את הקלט ובעצם ההבדל בין הדוגמה הקודמת. הדוגמה הקודמת הייתה לא כולל למספר שמסיים את הקלט שבמקרה ההוא זה היה מספר שלילי או 0 ואנחנו רוצים
כרגע כן כולל המספר שמסיים את הקלט. בואו נניח שבמקרה שלנו זה יהיה 0. אז בואו ניקח איזשהו משתנה num, בואו נציג ליוזר הודעה enter numbers for ending enter 0, וכאן כבר אנחנו יכולים להיכנס ללולאת do while כל עוד המספר שונה מ-0, ואנחנו רוצים לקלוט אותו מהמשתמש.
נם שווה, קונסור נקודה, יש לנו כאן את ה-next-in ואנחנו רוצים להציג את הספרה הימנית שלו. בואו ניקח right digit, יש לנו כאן את num-module 10 ואנחנו מציגים right digit, יש לנו את ה-right digit בצורה כזאת.
בואו נריץ, אנחנו מכניסים 12 ורואים שה-right digit זה 2, 6 ורואים שה-right digit זה 6, 2, 3 וה-right digit זה 3. יוזר מכניס 0 וכבר כאן אנחנו מסיימים את התוכנית אבל אנחנו כן מציגים right digit 0. למה הלולאה הזאת בעצם יותר מתאימה מהלולאה הקודמת?
אז הסיבה היא כי אנחנו בעצם רוצים לבצע איזושהי פעולה כולל הסיום, השלב הסופי של הלולאה. אם אנחנו רוצים לקלוט איזשהו מספר ולבצע איזושהי פעולה, לדוגמה לחשב את הספרה הימנית שלו ולהציג אותה, גם כאשר אנחנו עושים את זה עבור השלב האחרון בלולאה, זאת אומרת שבכל מקרה אנחנו רוצים
לבצע את הפעילות הזאת גם בשלב הראשון, גם בשלב האחרון, אז לולאת do while לפעמים יותר מתאימה לנו. אם לא היינו רוצים לבצע את השלב האחרון, אולי לולאת while הייתה יותר מתאימה לנו.
בואו נראה את הדוגמה הנוספת שהייתה לנו עם הצגת המספרים שמתחלקים ב-7 בלי שייריט. אז בואו נציג ליוזר הודעה, Enter Numbers for Ending, Enter 0, ואנחנו רוצים להיכנס ללולאת do.
בתוך הלולאת ה-do אנחנו רוצים לקלוט איזשהו מספר, בואו ניקח פה num, console next int. אנחנו רוצים לבצע בדיקה, אם num module 7 שווה 0, זה אומר שהמספר מתחלק ב-7 בלי שארית ומה שאנחנו רוצים לעשות זה להציג איזושהי