פורסם 2012 במרץ 1213 שנים יש לי תוכנת Winform ובה Listbox שאליה אני מכניס את הקבצים שלי ומריץ אותם, כשאני לוחץ על כפתור ה-STOP אני רוצה שהתוכנה תעצור מההרצה אבל מה שקורה זה שאם אני הולך להריץ יותר מלופ אחד היא עוצרת את אותו הלופ ועוברת לבא בתור ולא יוצאת לגמרייהמשתנה count סופר כמה לופים בעצם הרצתי ו-NumberOfLoops זה כמה אני הולך להריץ.מה שקורה כרגע ברגע הלחיצה על כפתור ה-STOP זה שה-CLASS שמריץ את הקבצים (נמצא בתוך ה-FOR ולא צירפתי אותו כי זה לא רלוונטי) מקבל ערך בוליאני שלילי ואז המשתנה ContinuePlay הופך שלילי וזה לא נכנס ללולאה אבל כאמור ללולאה הבאה כן, איך אני יכול להתגבר על זה ? while ((Count < numberOfLoops) && (ContinuePlay)) { for (int i = 0; (i < listBoxFiles.Items.Count) && (ContinuePlay); i++) {some code lines...count++; } }
פורסם 2012 במרץ 1213 שנים א. איזו לולאה ממשיכה, הפנימית או החיצונית?כדאי שתוסיף את הקוד מסביב כי הקוד שהוספת נראה תקין ובלי הקונטקסט שלו אי אפשר לראות מה הבעיה
פורסם 2012 במרץ 1213 שנים מחבר שאר הקוד לא רלוונטי כי אחרי ה-STOP הוא יוצא מה-FOR, מקדם את ה-Count וממשיך שוב, הוא לא יוצא מה-WHILE.
פורסם 2012 במרץ 1213 שנים דבר ראשון כטלאי אתה יכול לבצע if אחרי ה-for על ה-continuesPlay ואם זה שלילי אז לעשות break;אבל זה לא הפתרון הנכון או המומלץ לפחות שיעבוד לך כרגע.תנסה להחליף בלולאת ה-while במקומות בין ContinuesPlay לתנאי השני סתם לבדיקה.ד"א הכי טוב שתדבג את הקוד ותבדוק שבאמת ה-ContinuesPlay נשאר שלילי ולא הופך חיובי משום מה, זה הדבר היחיד שקופץ לי בתור בעיה (בגלל זה צריך את שאר הקוד לראות שלא עשית טעות איפשהו בתוך הלולאות)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.