עבור לתוכן
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

פורסם

שלום

עשיתי את השיטה הזאת -

כתבו שיטה במחלקה DrawingBoard בשם getMax שתחזיר את הצורה (מחלקה Shape) בעלת השטח המקסימלי מבין כל הצורות שבלוח. הדפסת פרטי האובייקט המוחזר תהיה בשיטה הראשית.

יש לי שיטת עזר בשם compare שבודקת למי יש את השטח הגדול ביותר

s זה מערך של Shape

public Shape getMax(){	int i;
int x;

for( i=0; i<counter;){
for (x=1;x<counter;){
if(s[i].Compare(s[x])==1)
x++;
else if(s[i].Compare(s[x])==-1)
i++;
else
x++;
}
if(s[i].Compare(s[x])==1)
return s[i];
else if (s[i].Compare(s[x])==-1)
return s[x];


else return s[i];

}




}

איפה שרשום getMax יש לי אדום(שגיאה) ורשום לי שאני צריך להחזיר Shape...

מה אני צריך לעשות?

כל המקומות שיש שם את החלקים מהמערך שמוחזרים הם לא Shape גם ??

תודה בכל מקרה

אילי

פורסם
  • מחבר
תעיף את ה-else האחרון

זה לא קשור אחי, פשוט שיטח העזר Compare בנויה בצורה שהיא מחזירה 1 אם האובייקט המפעיל גדול

2 אם האובייקט המופעל גדול

3 אם הם שווים

אז אני צריך להשאיר את זה

לדעתי אני פשוט מחזיר הפנייה אבל אני לא יודע איך לסדר את זה...

- - - תגובה אוחדה: - - -

תעיף את ה-else האחרון

זה לא קשור אחי, פשוט שיטח העזר Compare בנויה בצורה שהיא מחזירה 1 אם האובייקט המפעיל גדול

2 אם האובייקט המופעל גדול

3 אם הם שווים

אז אני צריך להשאיר את זה

לדעתי אני פשוט מחזיר הפנייה אבל אני לא יודע איך לסדר את זה...

זה השיטה compare

public int Compare(Shape s){	if (Area() >s.Area())
return 1;

else if(Area() <s.Area())
return -1;
else return 0;




}

פורסם

הבעיה היא שעשית return רק בתוך ה-for. הקומפיילר דורש שבכל מסלול אפשרי של ביצוע של הפונקציה, הוא יגיע ל-return. לקומפיילר אין דרך לדעת מראש אם התנאי שב-for יתקיים או לא, ולכן הוא לא יכול להיות בטוח ב-100% שתגיע ל-return הזה.

(בכלל, לא ברור לי מה הצורך ב-for החיצוני)

חוץ מזה, שני טיפים כלליים:

א. תדאד להזחות מסודרות של הקוד.

ב. תמיד תמיד תמיד אחרי if ו-else שמים סוגריים מסולסלים, גם אם זו רק פקודה אחת. זה הופך את הקוד להרבה יותר קריא.

ג. יש לך קריאות מיותרות ל-compare - אתה קורא לה פעמיים בכל איטרציה במקום רק פעם אחת. תשתמש במשתנים.

ד. להבא, אל תאמר לנו רק "יש שגיאה". תאמר מה השגיאה בדיוק.

נערך על-ידי שניצל

ארכיון

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

דיונים חדשים

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.