Menu
CoddyTech

Truy cập phần tử mảng 2 chiều

Thuộc phần Logic và luồng chương trình trong hành trình C# của Coddy. Bài học 3 trên 66.

Cách truy cập phần tử trong mảng 2D tương tự như với mảng thông thường, nhưng cần hai chỉ số: một cho hàng và một cho cột.

Lưu ý: Trong C#, có hai loại mảng đa chiều: mảng chữ nhật (int[,]) và mảng răng cưa (int[][]). Bài học này giới thiệu mảng răng cưa, trong đó mỗi hàng là một mảng riêng.

Tạo một mảng răng cưa có 3 hàng và 4 cột:

int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];

Gán một giá trị cho vị trí cụ thể (chỉ số hàng 1, chỉ số cột 2):

grid[1][2] = 42;

Đọc giá trị tại một vị trí cụ thể (chỉ số hàng 0, chỉ số cột 3):

int value = grid[0][3];

Vì chỉ số bắt đầu từ 0, chỉ số hàng 0 là hàng thứ 1 và chỉ số cột 3 là cột thứ 4.

Hãy nhớ rằng chỉ số của mảng bắt đầu từ 0, vì vậy các phạm vi chỉ số hợp lệ là:

  • Hàng: chỉ số từ 0 đến 2 (với mảng có 3 hàng: hàng thứ 1 có chỉ số 0, hàng thứ 2 có chỉ số 1, hàng thứ 3 có chỉ số 2)
  • Cột: chỉ số từ 0 đến 3 (với mảng có 4 cột: cột thứ 1 có chỉ số 0, cột thứ 2 có chỉ số 1, v.v.)
Nếu bạn thử truy cập một phần tử nằm ngoài các phạm vi này (chẳng hạn như grid[3][2]), bạn sẽ gặp IndexOutOfRangeException.
challenge icon

Thử thách

Trung bình

Viết một phương thức có tên getElement nhận ba đối số:

  1. Một mảng số nguyên hai chiều (int[][] matrix)
  2. Chỉ số hàng (int row)
  3. Chỉ số cột (int col)

Phương thức sẽ trả về phần tử ở vị trí được chỉ định nếu các chỉ số hợp lệ. Nếu một trong hai chỉ số nằm ngoài phạm vi, phương thức sẽ trả về -1.

Tự làm thử

public class GetElement
{
    public static int getElement(int[][] array, int row, int col)
    {
        // Viết code của bạn vào đây
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C# online