עזרה יש לי שאלה בג'אווה

יוכבדא

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

nhfk

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

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
משהו ממש מוזר כי השויתי עם עןוד סטודנטית והיא עשתה בדיוק כמוני את השיטה addCities ואת הtoString, ולא הייתה לה שגיאת הרצה.
איפה עוד יכול להיות בעיה?
ממש מוזר.
 

אמא ומתכנתת

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

בשלב הבא, היתי מציעה לך להוסיף בתוך הלולאה של toString הדפסה של i ושל האיבר הנוכחי במערך. משהו שם דפוק בטוח, צריך רק למצוא מה...
 

nhfk

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

בשלב הבא, היתי מציעה לך להוסיף בתוך הלולאה של toString הדפסה של i ושל האיבר הנוכחי במערך. משהו שם דפוק בטוח, צריך רק למצוא מה...
אני אנסה.
כשניסיתי להריץ הוא נתקע וכשניסיתי להריץ בלי המקום האחרון הוא הדפיס לי באמת את הפרטים של שני הערים, בלי העיר השלישית.

תודה!!
(נמאס לי... וזה גם מלחיץ אותי כי עוד פחות מחודש סוף סמסטר, והמבחנים...)
 

אמא ומתכנתת

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

תודה!!
(נמאס לי... וזה גם מלחיץ אותי כי עוד פחות מחודש סוף סמסטר, והמבחנים...)
גם המתכנת הכי טוב יכול להתקע לפעמים על שטות קטנה. בגדול הקוד שלך נראה בסדר גמור :)
 

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
אני מדבר על הקטע קוד שממנו האשכול הזה התחיל
קוד:
for (int i = 0;i<_noOfCities;i++)
{
   res = res + ...;
}
למה אין צורך בלולאה?
המטרה שלי היא שהשיטה תחזיר את הכותרת ואז את כל הערים שנמצאות במערך בסדר רציף. איך אני עושה את זה בלי לולאה?
 

משחזר מידע

משתמש סופר מקצוען
בלולאה שיש כרגע (אני לא יודע מה יש כרגע, אני מתייחס רק לשאלה הראשונית ולקוד שמופיע בהודעה הראשונה) הוא מסיים את כל הלולאה ורק כשיצא מזה
דהיינו שהגיע ל noOfCities אתם עוברים לif

מטרת לולאה הוא לבדוק בכל רגע נתון
וזה לא מה שקורה בפועל בקוד הזה

ובהרחבה

כש "i" שוה 0 אני בודק if
כש "i" שוה 1 אני בודק if

וכך זה אמור להיראות בקוד

קוד:
for (int i = 0;i<_noOfCities;i++)
{
   res = res + ...;
   if(something)
      {
      do this;
      }
   else
      {
      do that;
      }
}// ורק כאן יוצאים מהלולאה

בקוד האמור
הוא מריץ את הלולאה על סרק
ויוצאים מהלולאה על ידי "{"

קוד:
for (int i = 0;i<_noOfCities;i++)
{
   res = res + ...;
}כאן הוא יצא מהלולאה


ורק אח"כ יש If
 
נערך לאחרונה ב:

אמא ומתכנתת

משתמש סופר מקצוען
מנוי פרימיום
כתיבה ספרותית
בלולאה שיש כרגע (אני לא יודע מה יש כרגע, אני מתייחס רק לשאלה הראשונית ולקוד שמופיע בהודעה הראשונה) הוא מסיים את כל הלולאה ורק כשיצא מזה
דהיינו שהגיע ל noOfCities אתם עוברים לif

מטרת לולאה הוא לבדוק בכל רגע נתון
וזה לא מה שקורה בפועל בקוד הזה

ובהרחבה

כש "i" שוה 0 אני בודק if
כש "i" שוה 1 אני בודק if

בקוד האמור
הוא מריץ את הלולאה על סרק
ויוצאים מהלולאה על ידי "{"

ורק אח"כ יש If

וכך זה אמור להיראות בקוד

קוד:
for (int i = 0;i<_noOfCities;i++)
{
   res = res + ...;
   if(something)
      {
      do this;
      }
   else
      {
      do that;
      }
}// ורק כאן יוצאים מהלולאה
תסתכלו שוב על הקוד. בתוך הלולאה אין שום IF, רק שרשור של הערים.
אחרי הלולאה יש בדיקה האם התווספה עיר כלשהי למחרוזת.
 

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
בלולאה שיש כרגע (אני לא יודע מה יש כרגע, אני מתייחס רק לשאלה הראשונית ולקוד שמופיע בהודעה הראשונה) הוא מסיים את כל הלולאה ורק כשיצא מזה
דהיינו שהגיע ל noOfCities אתם עוברים לif

מטרת לולאה הוא לבדוק בכל רגע נתון
וזה לא מה שקורה בפועל בקוד הזה

ובהרחבה

כש "i" שוה 0 אני בודק if
כש "i" שוה 1 אני בודק if

בקוד האמור
הוא מריץ את הלולאה על סרק
ויוצאים מהלולאה על ידי "{"

ורק אח"כ יש If

וכך זה אמור להיראות בקוד

קוד:
for (int i = 0;i<_noOfCities;i++)
{
   res = res + ...;
   if(something)
      {
      do this;
      }
   else
      {
      do that;
      }
}// ורק כאן יוצאים מהלולאה
לא ממש הבנתי, אבל תכלס הוא מעדכן בלולאה את res להיות כל המחרוזת שאני רוצה להחזיר. וכדי שלא יקרה מצב שתוחזר לי רק כותרת אני בודקת אחרי העדכון אם res (המעודכן) שווה לx (הכותרת) ואם כן - זה אומר שאין ערים במערך ואם לא אז שיחזיר לי את res המעודכן.
 

אמא ומתכנתת

משתמש סופר מקצוען
מנוי פרימיום
כתיבה ספרותית
לא ממש הבנתי, אבל תכלס הוא מעדכן בלולאה את res להיות כל המחרוזת שאני רוצה להחזיר. וכדי שלא יקרה מצב שתוחזר לי רק כותרת אני בודקת אחרי העדכון אם res (המעודכן) שווה לx (הכותרת) ואם כן - זה אומר שאין ערים במערך ואם לא אז שיחזיר לי את res המעודכן.
אגב, צורה יפה יותר תהיה לבדוק האם המערך ריק. יש פונקציה מובנית לכך.
 

יוכבדא

משתמש סופר מקצוען
עיצוב גרפי
הנדסת תוכנה
תנסי לבדוק את הבנאי (constactor) של City
יש מצב שהוא לא מצליח ליצור את העיר השלישית וחוזר לך ערך NULL
 

nhfk

משתמש סופר מקצוען
הנדסת תוכנה
עיצוב ואדריכלות פנים
ל
תנסי לבדוק את הבנאי (constactor) של City
יש מצב שהוא לא מצליח ליצור את העיר השלישית וחוזר לך ערך NULL
לא הוא בסדר.
אגב, צורה יפה יותר תהיה לבדוק האם המערך ריק. יש פונקציה מובנית לכך.
לא למדו אותנו. למדנו מערכים השבוע. בשיעור אחד לא ממצה.


תכלסססס - הגענו לטעותתתת.
בשיטה אחרת בכלל שמאחדת שתי ערים - אז טיפלתי בהכל וקידמתי שלא יהיה חור ושמתי null במקום האחרון... אבל שכחתי להוריד מ_noOfCities אחד...
מעצבן.
אבל תודה על עזרה בכל מקרה.
וכיף לדעת שיש פה עם מי להתייעץ...!
 

יוכבדא

משתמש סופר מקצוען
עיצוב גרפי
הנדסת תוכנה
לא למדו אותנו. למדנו מערכים השבוע. בשיעור אחד לא ממצה.
בד"כ גם לא לומדים את זה, זה תוספת utils - lang3 מאד שימושי.
org.apache.commons.lang3.ArrayUtils.isEmpty(arrayName​
 

אמא ומתכנתת

משתמש סופר מקצוען
מנוי פרימיום
כתיבה ספרותית
ל

לא הוא בסדר.

לא למדו אותנו. למדנו מערכים השבוע. בשיעור אחד לא ממצה.


תכלסססס - הגענו לטעותתתת.
בשיטה אחרת בכלל שמאחדת שתי ערים - אז טיפלתי בהכל וקידמתי שלא יהיה חור ושמתי null במקום האחרון... אבל שכחתי להוריד מ_noOfCities אחד...
מעצבן.
אבל תודה על עזרה בכל מקרה.
וכיף לדעת שיש פה עם מי להתייעץ...!
שמחה לשמוע :)
 

אולי מעניין אותך גם...

לוח מודעות

למעלה