תרגיל - יצירת לולאות Do ו- While Iteration
- 10 דקות
על פני השטח, do-whilewhile המשפטים וההצהרות הם עוד משפט איטרציה שמאפשר לך לבצע איטרציה באמצעות בלוק קוד, ו- ו- by change the flow of execution of your code. עם זאת, לאחר שנבחן כיצד כל אחד מהם פועל, נוכל לזהות טוב יותר את הנואנסים של כל הצהרת שיטה ומתי להשתמש בהם.
מהו המשפט של 'עשה-בזמן'?
המשפט do-while מבצע משפט או בלוק של משפטים בזמן שביטוי בוליאני שצוין מוערך כ- True. מאחר שביטוי זה מוערך לאחר כל הפעלה של הלולאה, לולאת 'עשה-בזמן' מבצעת פעם אחת או יותר.
do
{
// This code executes at least one time
} while (true);
זרימת הביצוע מתחילה בתוך הסד המסולסל. הקוד מבצע לפחות פעם אחת ולאחר מכן מוערך הביטוי הבוליאני לצד while מילת המפתח. אם הביטוי הבוליאני מחזיר trueאת , בלוק הקוד מבוצע שוב.
על-ידי trueקידוד קשיח של הביטוי הבוליאני ל- , יצרנו לולאה אינסופית - לולאה שלעולם לא תסתיים, לפחות, לא כפי שהיא כתובה כעת. נצטרך דרך לצאת מה לולאה בתוך בלוק הקוד. נדון בקריטריוני היציאה של זמן do-while קצר.
אוקיי, עכשיו בואו תכינו את סביבת הקידוד שלנו ותתחילו את בדיקת דוגמאות הקוד המיישמת הצהרה do-while .
הכנת סביבת הקידוד שלך
מודול זה כולל פעילויות מעשיות שמנחה אותך לאורך תהליך הבנייה וההפעלה של קוד הדגמה. אנו ממליצים לך להשלים פעילויות אלה באמצעות Visual Studio Code כסביבת הפיתוח שלך. השימוש ב- Visual Studio Code עבור פעילויות אלה יעזור לך לכתוב ולבצע קוד בצורה נוחה יותר בסביבת מפתחים המשמשת מומחים ברחבי העולם.
פתח את Visual Studio Code.
באפשרותך להשתמש בתפריט ההתחלה של Windows (או במשאב שווה ערך עבור מערכת הפעלה אחרת) כדי לפתוח את Visual Studio Code.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, נווט אל תיקיית שולחן העבודה של Windows.
אם יש לך מיקום תיקיה אחר שבו אתה שומר פרוייקטים של קוד, באפשרותך להשתמש במיקום תיקיה זה במקום זאת. להדרכה זו, הדבר החשוב הוא שיהיה לך מיקום שקל לאתר ולזכור.
בתיבת הדו-שיח פתיחת תיקיה, בחר בחר תיקיה.
אם אתה רואה תיבת דו-שיח של אבטחה השואלת אם אתה נותן אמון בעורכים, בחר כן.
בתפריט מסוף קוד Visual Studio , בחר מסוף חדש.
שים לב שבקשה לפקודה בלוח המסוף מציגה את נתיב התיקיה עבור התיקיה הנוכחית. לדוגמה:
C:\Users\someuser\Desktop>הערה
אם אתה עובד במחשב שלך ולא בסביבת ארגז חול או סביבה מתארחת והשלמת מודולים אחרים של Microsoft Learn בסדרת C# זו, ייתכן שכבר יצרת תיקיית פרוייקט עבור דוגמאות קוד. במקרה זה, באפשרותך לדלג על השלב הבא, המשמש ליצירת יישום מסוף בתיקיה TestProject.
בשורת הפקודה של המסוף, כדי ליצור יישום מסוף חדש בתיקיה שצוינה, הזן את הבקשה הבאה:
dotnet new console -o ./CsharpProjects/TestProjectפקודה זו של .NET CLI משתמשת בתבנית של תוכנית .NET כדי ליצור פרוייקט יישום חדש של מסוף C# במיקום התיקיה שצוין. הפקודה יוצרת עבורך את התיקיות CsharpProjects ו- TestProject, ומשתמשת ב- TestProject כשם
.csprojהקובץ.אם מוצגת הודעה המציינת שהקבצים כבר קיימים, המשך לשלבים הבאים. תוכל לעשות שימוש חוזר בקובצי הפרוייקט הקיימים.
בתצוגת EXPLORER, הרחב את התיקיה CsharpProjects .
אתה אמור לראות את התיקיה TestProject ושני קבצים, קובץ תוכנית C# בשם Program.cs וקובץ פרוייקט C# בשם TestProject.csproj.
בתפריט קובץ קוד של Visual Studio, בחר פתח תיקיה.
בתיבת הדו-שיח פתיחת תיקיה, בחר את התיקיה CsharpProjects ולאחר מכן בחר בחר תיקיה.
בתצוגת EXPLORER, הרחב את התיקיה TestProject ולאחר מכן בחר Program.cs.
מחק את שורות הקוד הקיימות.
יהיה עליך להשתמש בפרוייקט זה של מסוף C# כדי ליצור, לבנות ולהפעיל דוגמאות קוד במהלך מודול זה.
סגור את לוח המסוף.
כתוב משפט 'עשה-בזמן' כדי לנתק בעת יצירת מספר אקראי מסוים
בוא נכתוב קוד ש ימשיך ליצור מספרים אקראיים בין 1 ל- 10 עד שנפיק את המספר 7. זה יכול לקחת רק 10 דקות כדי לקבל 7, או שזה יכול לקחת עשרות תדירות.
ודא שהאפשרות קוד Visual Studio פתוחה Program.cs בלוח 'עורך'.
הערה
Program.cs צריך להיות ריק. אם לא, בחר ומחק את כל שורות הקוד.
הקלד את הקוד הבא בעורך הקוד של Visual Studio.
Random random = new Random(); int current = 0; do { current = random.Next(1, 11); Console.WriteLine(current); } while (current != 7);בתפריט קוד Visual Studio קובץ, בחר שמור.
יש Program.cs הקובץ לפני בנייה או הפעלה של הקוד.
בלוח EXPLORER, כדי לפתוח מסוף במיקום התיקיה TestProject, לחץ באמצעות לחצן העכבר הימני על TestProjectולאחר מכן בחר פתח במסוף משולב.
לוח מסוף ייפתח. המסוף צריך לכלול שורת פקודה שמראה כי המסוף פתוח במיקום התיקיה TestProject שלך.
בשורת הפקודה Terminal, כדי להפעיל את הקוד, הקלד dotnet מכן הקש Enter.
הערה
אם אתה רואה הודעה המציינת כי "לא היתה אפשרות למצוא פרוייקט להפעלה", ודא שבקשה לפקודה של Terminal מציגה את מיקום התיקיה TestProject הצפוי. לדוגמה:
C:\Users\someuser\Desktop\csharpprojects\TestProject>סקור את הפלט שלך.
מאחר שהמספרים שנוצרים הם אקראיים, התוצאות שלך יהיו שונות. עם זאת, הערך
7יהיהfalseהמספר האחרון שיודפס מאחר שהביטוי הבוליאני יוערך כאשר יפיק 7, וזרימת הביצוע תצא מבלוק הקוד.2 5 8 2 7בדוק את הקוד שלך כדקה.
למידה מרכזית עבור משימה ראשונה זו היא שבלוק הקוד של לולאה
do-whileיופעל לפחות פעם אחת. זה יכול לחזר מספר רב של פעמים, ולא סביר שאנחנו יודעים מראש כמה איטראציות יהיו.כמו כן, חשוב לציין שהקוד בתוך בלוק הקוד מסמן אם להמשיך בהפעלה באמצעות בלוק הקוד או לא. בלוק קוד המשפיע על
do-whilewhileקריטריוני היציאה הוא סיבה עיקרית לבחירת משפט או במקום אחד מהצהרות האימות האחרות. הן הגורמיםforeachforהחיצוניים לבלוק הקוד והן מסתתכים בגורמים חיצוניים כדי לקבוע את מספר ההאציות לחסימת קוד.
כתוב משפט while שמציין איטראדה רק כאשר מספר אקראי גדול מערך מסוימים
עכשיו בוא נבחן את ההצהרה while .
השתמש בעורך קוד Visual Studio כדי לעדכן את הקוד שלך באופן הבא:
Random random = new Random(); int current = random.Next(1, 11); /* do { current = random.Next(1, 11); Console.WriteLine(current); } while (current != 7); */ while (current >= 3) { Console.WriteLine(current); current = random.Next(1, 11); } Console.WriteLine($"Last number: {current}");הערה
במקרה זה, אנו מקם את
whileמילת המפתח ואת הביטוי הבוליאני לפני בלוק הקוד. פעולה זו משנה את משמעות הקוד ופועלת כ"שער" כדי לאפשר הזנה של זרימת הביצוע רק אם הביטוי הבוליאני מוערך כ- True.שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
הזן
dotnet runמשורת הפקודה Terminal כדי להפעיל את הקוד שלך.סקור את ערכי הפלט המפורטים.
מאחר שהמספרים הם אקראיים, הקוד שלך יפיק רצף שונה.
9 7 5 Last number: 1בדוק את הקוד שלך כדקה.
בקוד העליון, אנו משתמשים כדי לאתחל
randomאת המשתנהintשלנו בשםcurrent. שורת הקוד הפעילה הבאה שלנו היא ההצהרהwhileשלנו.ההצהרה
whileשלנו תתבסס על הביטוי הבוליאני(current >= 3). איננו יודעים איזה ערך יוקצה ל-current, אך קיימות אפשרויות המשפיעות על הלולאהwhileשלנו:- אם
currentהוא מאותחל3לערך גדול או שווה ל- ,trueהביטוי הבוליאני יחזיר , וזרימת הביצוע תזין את בלוק הקוד. בתוך בלוק הקוד, הדבר הראשון שאנחנו עושים הוא לכתוב את הערך של לקונסולהcurrent. בשלב הבא, עדיין בתוך בלוק הקוד, אנו מעדכנים אתcurrentהערך שלו בערך אקראי חדש. בשלב זה, הפקד חוזר לראש המשפטwhileשבו מוערך הביטוי הבוליאני. תהליך זה ממשיך עד שהביטוי הבוליאני יחזורfalseוזרימת מעברי הביצוע מבלוק הקוד. - אם
currentהוא מאותחל (בחלק העליון של הקוד שלנו)3לערך הקטן מ- ,falseהביטוי הבוליאני יחזיר , ובלוק הקוד לעולם לא יופעל.
שורת הקוד הסופית כותב את הערך של
currentהקונסולה. קוד זה פועל בין אם בלוק קוד ההחזרה בוצע או לא, והוא ההזדמנות שלנו לכתוב את הערך הסופי של הקונסולהcurrent.- אם
השתמש במשפט continue כדי לעבור ישירות לביטוי הבוליאני
במקרים מסוימים, אנו רוצים לקצר את שארית הקוד בבלוק הקוד ולהמשיך לאיטרציה הבאה. אנחנו יכולים לעשות זאת באמצעות ההצהרה continue .
השתמש בעורך קוד Visual Studio כדי לעדכן את הקוד שלך באופן הבא:
Random random = new Random(); int current = random.Next(1, 11); do { current = random.Next(1, 11); if (current >= 8) continue; Console.WriteLine(current); } while (current != 7); /* while (current >= 3) { Console.WriteLine(current); current = random.Next(1, 11); } Console.WriteLine($"Last number: {current}"); */בדוק את הקוד שלך כדקה.
שים לב שחלפה חזרה ל-
do-while. Ado-whileמבטיח שה ולולאה תחזור שוב לפחות פעם אחת.הדבר הראשון שאנחנו עושים בתוך בלוק הקוד הוא להקצות ערך אקראי חדש ל-
current. לאחר מכן, אנו בודקים אםcurrentהוא גדול או שווה ל-8. אם ביטוי זה מחזירtrueאת ,continueמקש המילה יעביר את הפקד לסוף בלוק הקודwhileוהערך שלו(current != 7). לכן, הלולאה תמשיך לחזרה כל עוד הערך שלcurrentאינו שווה ל-7.המפתח לשלב זה בתרגיל הוא שורת הקוד המכילה את המילה
continueהעליונה:if (current >= 8) continue;מאחר שהקוד
currentif (current >= 8) continue;שלנו כותב את הערך של הקונסולה ממוקם לאחר ,current8הקוד שלנו מבטיח שערך שהוא גדול או שווה ל לעולם לא ייכתב בחלון הפלט.בוא ננסה את זה.
שמור את קובץ הקוד ולאחר מכן השתמש ב- Visual Studio Code כדי להפעיל את הקוד.
הזן
dotnet runמשורת הפקודה Terminal כדי להפעיל את הקוד שלך.סקור את ערכי הפלט המפורטים.
5 1 6 7ייתכן שתראה תוצאות שונות מאלה המוצגות להלן. עם זאת, לא תראה ערכים
8או ערכים גדולים יותר בחלון הפלט לפני שביצוע הקוד יסתיים בערך7.שקול את ההבדל בין המשפטים
continuebreakלבין המשפטים.כפי שראית בשלב האחרון, המשפט
continueמעביר את הביצוע לסוף ההפצה הנוכחית. אופן פעולה זה שונה מההתנהגות שראינו בהצהרהbreak. המשפטbreakמסיים את ההפסקה (אוswitch) ומעביר את השליטה להצהרה המופיעה לאחר המשפט המסתיים. אם אין משפט לאחר המשפט שהופסק, שלוט על העברות לסוף הקובץ או פעולת השירות.
סיכום
יש כמה רעיונות חשובים שעליך לקחת ביחידה זו:
- המשפט
do-whileעובר תהליך של בלוק קוד לפחות פעם אחת, וייתכן שהוא ימשיך לחזרה בהתבסס על ביטוי בוליאני. הערכת הביטוי הבוליאני תלויה בדרך כלל בערך שנוצר או מאוחזר בתוך בלוק הקוד. - המשפט
whileמעריך תחילה ביטוי בוליאני וממשיך לבצע את האיטרציה באמצעות בלוק הקוד כל עוד הביטוי הבוליאני מוערך כ-true. - מילת
continueהמפתח לעבור מיד לביטוי הבוליאני.
בדיקת ידע
משוב
האם עמוד זה היה מועיל?
לא
זקוק לעזרה בנושא זה?
רוצה לנסות להשתמש ב'שאל את Learn' כדי להבהיר או להדריך אותך בנושא זה?