עבור לתוכן

בעיה במימוש שיטה בJAVA.

Featured Replies

פורסם

שלום רב,

אני צריך בבקשה עזרה במימוש שיטה בשם allThere במחלקה שיצרתי בשם Square3X3 המייצגת מערך דו מימדי של 3x3 מספרים (סה"כ 9 מספרים).

השיטה צריכה למצוא האם במערך הדו מימדי יש את כל המספרים מ-1 עד 9 (כולל כולם, וכל אחד רק פעם אחת), במידה וכך הדבר,הוא יחזיר trueת, אחרת, יוציא false.

ניסיתי להכניס תנאי של if שיבדוק בכל מספר שנכנס הוא בין 1 ל-9 ,אבל למעשה אם נכנסים פעמיים את הספרה 5 עדיין הוא יוציא true.

בנתיים החתימה של השיטה וההתחלה שלה נראית כך:

;()public boolean allThere

(++for(int row=0;row<=2;row

}

(++for(int col=0;col<=2;col

}

...

אודה לעזרה מראש.

פורסם

תערוך בבקשה את ההודעה שלך כדי שיהיה אפשר לקרוא אותה.

פורסם

ההתחלה שלך טובה

for בתוך for

תוסיף אחד מעל שניהם שמריץ מספרים מ 1-9 וזה יהיה כל פעם המספר שאתה מחפש,

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

אחרת true מאחר וגם ככה יש לך רק 9 תאים אם כל המספרים החזירו true בבדיקה זה אומר שיש את כולם בכל התשע והם לא חוזרים

for (int checkNum = 1; checkedNum <= 9;checkedNum++)
for (int row = 0;row < b3x3.length ; row++)
for(int col = 0; col <b3x3[row].length ; col++)

פורסם

אופציה נוספת, שתחסוך לך לולאות - תשתמש במערך של boolean שאומר על איזה מספרים מ-1 עד 9 עברת כבר, ואז אפשר לעשות הכל במעבר אחד (לא תצטרך לולאה חיצונית מ-1 עד 9).

פורסם


יישור
boolean array = {true,false,false..till you get to 10 of em to make your life simple
for (row)
for (col)
if (!(array[box[row][col]]))
array[box[row][col]] = true
else
return false


יישור

כמובן להחזיר אמת כשהלולאה נגמרת מאחר והדרך היחידה שהיא תגמר בלי לעצור את עצמה היא אם כל המערך אמת

פורסם
  • מחבר

הבעיה שלי היא במקרה שמכניסים מספר אחר מחוץ לטווח ל1 עד 9(כמו 10 למשל),

אז בזמן ריצה מופיע הודעה array index out of bounds..

פורסם

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

פורסם

או שאתה בודק שהאיבר הוא באמת בטווח 1-9. אם הוא לא בטווח אז הוא בא על חשבון איבר אחר מהטווח, ולכן אתה יכול להחזיר false בבטחה.

ארכיון

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

דיונים חדשים