נשלח בתאריך: 29 October 2006 בשעה 07:09 | | IP רשוּם
|
|
|
|
לא הבנתי את הקטע של "עצרת ב- C#"..
לגבי do while && for
for זאת סוג לולאה שאתה מראש יודע כמה סיבובים היא עומדת לעשות, ז"א שאתה יודע לדוגמא שאתה רוצה להדפיס 100 פעמים את אותה הודעה על המסך. לעומתה, לולאת
while/do
while היא לולאה אשר לא ידוע לך בעת כתיבת הקוד בכמה סיבובים יהיה צורך הדוגמא הכי פשוטה היא תהליך כניסה למערכת... אתה לא יודע בידיוק כמה פעמים המשתמש יטעה ולא יצליח להכנס
למערכת ככה שאתה בעצם עושה בלולאת while/do while שעד שהמשתמש לא מכניס את הסיסמא והשם משתמש הנכונים הוא ימשיך לבקש את השם משתמש והסיסמא. במצב של שימוש
בלולאת for אתה תאלץ להגדיר לו מספר סיבובים מסויים ואחרי המספר סיבובים האלו הוא פשוט יצא מהלולאה (דבר שלא משרת את הצורך במקרה הנוכחי).. ברגע שתראה איך כותבים בתאכלס
לולאת for ולולאת while אתה תראה את ההבדל. (בגדול, לולאת for היא לולאה שפשוט מפשטת לך כמתכנת את השליטה בלולאה... את אותן תוצאות תוכל להשיג גם עם
לולאת
while.. זה פשוט יהיה קצת יותר מורכב ;-) )
לגבי ההבדל בין do while ו- while
אם לדוגמא הגדרנו משתנה מסוג string שנקרא strUsername ואנחנו כותבים לולאה של do while שבה כל עוד המשתנה יהיה שונה מ- "tal" הלולאה תרוץ, בצורה
הבאה:
קוד:
string strUsername = "tal";
|
|
|
ואז הקוד הבא:
קוד:
do { Console.WriteLine("Please enter your username:"); strUsername = Console.ReadLine(); } while(strUsername != "tal")
|
|
|
לעומת:
קוד:
while(strUsername != "tal") { Console.WriteLine("Please enter your username:"); strUsername = Console.ReadLine(); }
|
|
|
מה שיקרה בסופו של דבר זה שהלולאת while תבדוק בכניסה ללולאה האם התנאי אכן נכון, אם הוא נכון היא תיכנס ללולאה ותתחיל לרוץ (במקרה שלנו היא פשוט לא תרוץ) לעומת לולאת
do while שבה הלולאה תרוץ קודם כל פעם אחת ורק בסוף הלולאה היא תבדוק האם התנאי נכון.
ככה שבמצב הנוכחי, לולאת ה- while לא תרוץ בכלל כי התנאי לא נכון מלכתחילה לעומת do while שבה הלולאה תרוץ פעם אחת ורק אז תבדוק האם התנאי אכן נכון - במקרה והוא
יהיה
שגוי היא לא תרוץ שוב, במקרה והוא יהיה נכון - היא תעשה סיבוב נוסף.
ואגב, כל מה שכתבתי כאן (מבחינה תאורתית הכוונה) רלוונטי גם לשפות אחרות..
מקווה שעזרתי :-)
טל.
|