Menu
Coddy logo textTech

גישה לאיברים במערך דו־ממדי

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-Java של Coddy. שיעור 2 מתוך 59.

הגישה לאיברים במערך דו־ממדי דומה לגישה לאיברים במערך חד־ממדי, אבל במקום להשתמש באינדקס יחיד, משתמשים בשני אינדקסים: אחד לשורה ואחד לעמודה. זכרו שהאינדקסים ב-Java מתחילים ב-0, לכן השורה הראשונה נמצאת באינדקס 0, השורה השנייה באינדקס 1 וכן הלאה. בדומה לכך, העמודה הראשונה נמצאת באינדקס 0, העמודה השנייה באינדקס 1 וכן הלאה.

כדי לגשת לאיבר, תחילה מציינים את אינדקס השורה ולאחר מכן את אינדקס העמודה, באמצעות התחביר הבא:

arrayName[rowIndex][columnIndex]

לדוגמה, כדי לגשת לאיבר בשורה השנייה (אינדקס 1) ובעמודה השלישית (אינדקס 2) של מערך דו־ממדי בשם matrix, תכתבו:

int element = matrix[1][2];

פעולה זו תשייך למשתנה element את הערך של הרכיב בשורה 1, בעמודה 2.

קבלת הממדים של מערך דו־ממדי:

בדומה למערכים חד־ממדיים, אפשר להשתמש ב-.length כדי לקבל את הממדים של מערך דו־ממדי:

int[][] matrix = {
    {1, 2, 3},
    {4, 5, 6}
};
int numRows = matrix.length;        // מקבל את מספר השורות: 2
int numCols = matrix[0].length;     // מקבל את מספר העמודות: 3
  • matrix.length מחזיר את מספר השורות
  • matrix[0].length מחזיר את מספר העמודות בשורה הראשונה

בדיקת גבולות:

לפני גישה לאיבר, מומלץ לבדוק אם האינדקסים תקינים:

if (rowIndex >= 0 && rowIndex < matrix.length && 
    colIndex >= 0 && colIndex < matrix[0].length) {
    // אפשר לגשת בבטחה אל matrix[rowIndex][colIndex]
}
challenge icon

אתגר

קל

צרו מתודה בשם getElement שמקבלת שלושה ארגומנטים:

  1. מערך דו־ממדי של מספרים שלמים בשם matrix.
  2. מספר שלם rowIndex שמייצג את אינדקס השורה.
  3. מספר שלם colIndex שמייצג את אינדקס העמודה.

המתודה צריכה להחזיר את האיבר בשורה ובעמודה שצוינו בתוך matrix. אם rowIndex או colIndex חורגים מהגבולות (כלומר, קטנים מ־0 או גדולים ממספר השורות או העמודות או שווים לו), המתודה צריכה להחזיר ‎-1.

נסו בעצמכם

// כתבו את הקוד שלכם רק בתוך המחלקה. אל תכתבו main() או קוד כלשהו מחוץ למחלקה זו.
class GetElement {
    public static int getElement(int[][] matrix, int rowIndex, int colIndex) {
        // כתבו את הקוד שלכם כאן
    }
}
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר Java אונליין