עבור לתוכן
View in the app

A better way to browse. Learn more.

HWzone

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

בעיה מוזרה בקוד - JAVA

Featured Replies

פורסם

אהלן,

אני בשלבים אחרונים של תכנות משחק קטן ויש לי בעיה מאוד מוזרה.

משום מה הקומפיילר מחליט כמעט תמיד (במיוחד בהרצה הראשונה של הלולאה) לדלג על התנאי שבלולאה.

הקוד:


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]) לא מתקיים והקומפיילר מכל מקרה מריץ את הקוד.

מה יכולה להיות הסיבה?

תודה :)

פורסם

מה הערכים של mX, lastClick, empty בזמן שהוא "מדלג" על התנאי?

קשה לעזור עם קטע קטן מהתוכנית.

פורסם
  • מחבר

למשל הוא מדלג כשהמצב כזה:

mX = 497

lastClick = 0

empty [pr] [pc] = false

פורסם

נכון, הוא אמר שהתנאי לא מתקיים ולמרות זאת הקוד רץ.

פותח הת'רד: אתה בטוח שהתנאי אינו מתקיים? שמת breakpoint בדיוק בשורה הראשונה שאחרי ה-if ווידאת שם שהתנאי אכן false?

פורסם

כדאי במקרים כאלה לבצע הדפסות של הערכים.

פורסם
  • מחבר

נכון, הוא אמר שהתנאי לא מתקיים ולמרות זאת הקוד רץ.

פותח הת'רד: אתה בטוח שהתנאי אינו מתקיים? שמת breakpoint בדיוק בשורה הראשונה שאחרי ה-if ווידאת שם שהתנאי אכן false?

כשאני שם ברייק פוינט לפני הלולאה, הוא לא מדלג.

לעומת זאת כשאני רק מדפיס לפני הלולאה לפני התנאי ואחרי התנאי את הערכים, התנאי לא אמור להתקיים והקוד כן רץ..

פורסם

כדאי שתבדוק קצת יותר בדקדוק את הערכים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.