פורסם 2013 בינואר 1012 שנים אהלן, אני בשלבים אחרונים של תכנות משחק קטן ויש לי בעיה מאוד מוזרה. משום מה הקומפיילר מחליט כמעט תמיד (במיוחד בהרצה הראשונה של הלולאה) לדלג על התנאי שבלולאה. הקוד: while ( turn ) { if (mX != lastClick && empty [pr] [pc]) { board [pr] [pc] = 0 ; empty [pr] [pc] = false ; int [] mouse = findPlaceToDraw ( findPlaceOnBoard (mX,mY) ) ; p.add (o[i]) ; o.setBounds(mouse [0], mouse [1], d, d); lastClick = mX ; turn = false ; } }[/i] התנאי הראשון מתקיים אך השני ( empty [pr] [pc]) לא מתקיים והקומפיילר מכל מקרה מריץ את הקוד. מה יכולה להיות הסיבה? תודה
פורסם 2013 בינואר 1012 שנים מה הערכים של mX, lastClick, empty בזמן שהוא "מדלג" על התנאי?קשה לעזור עם קטע קטן מהתוכנית.
פורסם 2013 בינואר 1012 שנים מחבר למשל הוא מדלג כשהמצב כזה:mX = 497lastClick = 0empty [pr] [pc] = false
פורסם 2013 בינואר 1012 שנים נכון, הוא אמר שהתנאי לא מתקיים ולמרות זאת הקוד רץ.פותח הת'רד: אתה בטוח שהתנאי אינו מתקיים? שמת breakpoint בדיוק בשורה הראשונה שאחרי ה-if ווידאת שם שהתנאי אכן false?
פורסם 2013 בינואר 1012 שנים מחבר נכון, הוא אמר שהתנאי לא מתקיים ולמרות זאת הקוד רץ.פותח הת'רד: אתה בטוח שהתנאי אינו מתקיים? שמת breakpoint בדיוק בשורה הראשונה שאחרי ה-if ווידאת שם שהתנאי אכן false?כשאני שם ברייק פוינט לפני הלולאה, הוא לא מדלג.לעומת זאת כשאני רק מדפיס לפני הלולאה לפני התנאי ואחרי התנאי את הערכים, התנאי לא אמור להתקיים והקוד כן רץ..
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.