Deklarowanie i inicjalizacja tablic 2D
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 2 z 66.
Tablicę 2D w C# można utworzyć za pomocą tablic postrzępionych, czyli tablic tablic, co pozwala przechowywać dane w strukturze przypominającej siatkę.
Aby utworzyć poszarpaną tablicę liczb całkowitych z 3 wierszami i 4 kolumnami:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Powyższy kod tworzy tablicę 2D, która wygląda tak (wszystkie elementy są zainicjalizowane wartością 0):
[0, 0, 0, 0]
[0, 0, 0, 0]
[0, 0, 0, 0]Zainicjalizuj tablicę postrzępioną wartościami:
int[][] matrix = new int[2][];
matrix[0] = new int[] {1, 2, 3};
matrix[1] = new int[] {4, 5, 6};Tworzy to tablicę 2D z 2 wierszami i 3 kolumnami, zawierającą wartości:
[1, 2, 3]
[4, 5, 6]Aby uzyskać liczbę wierszy i kolumn:
int rows = matrix.Length; // Zwraca 2
int columns = matrix[0].Length; // Zwraca 3 (dla pierwszego wiersza)Dostęp do elementów w tablicy 2D wymaga dwóch indeksów: jednego dla wiersza i jednego dla kolumny.
Przypisz wartość do konkretnej pozycji (wiersz 1, kolumna 2):
grid[1][2] = 42;Odczytaj wartość z określonej pozycji (wiersz 0, kolumna 3):
int value = grid[0][3];Pamiętaj, że indeksy tablicy zaczynają się od 0, więc prawidłowe zakresy to:
- Wiersze: od 0 do 2 (dla tablicy z 3 wierszami)
- Kolumny: od 0 do 3 (dla tablicy z 4 kolumnami)
Jeśli spróbujesz uzyskać dostęp do elementu spoza tych zakresów (na przykład grid[3][2]), wystąpi wyjątek IndexOutOfRangeException.
Spróbuj swoich sił
Ta lekcja nie zawiera wyzwania z kodem.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Logika i sterowanie przepływem
1Tablice wielowymiarowe
Podstawy tablic 2DDeklarowanie i inicjalizacja tablic 2DDostęp do elementów tablic 2DZagnieżdżone pętle z tablicami 2DTablice postrzępionePodstawowe operacje na macierzachPodsumowanie — tablice wielowymiarowe4Techniki sterowania przepływem
Wczesne zwrotyKlauzule ochronneInstrukcje skoku (goto)Break i continueSpłaszczanie zagnieżdżonych warunków7Zaawansowane operatory logiczne
Ewaluacja z krótkim spięciemWarunkowe operatory logicznePriorytet operatorówPowtórzenie — zaawansowane operatory2Zaawansowane podejmowanie decyzji
Wiele warunkówZłożona logika Boole’aPorównanie if i switchZagnieżdżone instrukcje switchPodsumowanie — zaawansowane decyzje5Obsługa wyjątków
Podstawy try-catchTypy wyjątkówWiele bloków catchPraca z plikamiBlok finallyusing a try-finallyWłasne wyjątkiPowtórzenie — obsługa błędów3Udoskonalenia pętli
Wydajność pętliIterowanie po złożonych strukturachKażdy typ pętliRefaktoryzacja pętliPodsumowanie — zoptymalizowane pętle6Obsługa wartości null
Podstawy referencji nullTypy wartości dopuszczające nullWzorce sprawdzania nullProgramowanie defensywnePodsumowanie — bezpieczeństwo nullPoćwicz samodzielnie: Kompilator C# online