Accessing 2D Array Elements
Coddy'nin C# Journey'sinin Mantık & Akış bölümünün bir parçası — ders 3 / 66.
İki boyutlu bir dizideki öğelere erişim, normal dizilere benzer bir sözdizimi kullanır, ancak satır ve sütun için iki indeks gerektirir.
Not: C#'ta, çok boyutlu dizilerin iki türü vardır: dikdörtgen diziler (int[,]) ve kesikli diziler (int[][]). Bu ders, her satırın kendi dizisi olduğu kesikli dizileri kapsar.
3 satır ve 4 sütunlu bir kesikli dizi oluşturun:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Belirli bir konuma (satır indeksi 1, sütun indeksi 2) bir değer atayın:
grid[1][2] = 42;Belirli bir konumdan (satır indeksi 0, sütun indeksi 3) bir değer oku:
int value = grid[0][3];İndeksler 0'dan başladığı için, satır indeksi 0 1. satırdır ve sütun indeksi 3 4. sütundur.
Dizinin indekslerinin 0'dan başladığını unutmayın, bu nedenle geçerli indeks aralıkları şunlardır:
- Satırlar: indeks 0 ile 2 arası (3 satırlı bir dizi için — 1. satır indeks 0, 2. satır indeks 1, 3. satır indeks 2)
- Sütunlar: indeks 0 ile 3 arası (4 sütunlu bir dizi için — 1. sütun indeks 0, 2. sütun indeks 1, ve böyle devam eder)
grid[3][2]), bir IndexOutOfRangeException alırsınız.Görev
OrtagetElement adında üç argüman alan bir metot yazın:
- 2D tamsayı dizisi (
int[][] matrix) - Bir satır indeksi (
int row) - Bir sütun indeksi (
int col)
Metot, indeksler geçerliyse belirtilen konumdaki elemanı döndürmelidir. Herhangi bir indeks aralık dışındaysa, metot -1 döndürmelidir.
Kopya kağıdı
2D dizideki öğelere iki indeks kullanarak erişin: [row][column]
2D dizi oluşturun:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Bir değer atayın:
grid[1][2] = 42;Bir değer okuyun:
int value = grid[0][3];Dizi indeksleri 0'dan başlar. Geçerli aralıkların dışındaki öğelere erişmek bir IndexOutOfRangeException fırlatır.
Kendin dene
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Buraya kodunuzu yazın
}
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Mantık & Akış bölümündeki tüm dersler
1Multi-dimensional Arrays
2D Arrays BasicsDeclaring and Initializing 2DAccessing 2D Array ElementsNested Loops with 2D ArraysJagged ArraysCommon Matrix OperationsRecap - Multi-dimensional4Flow Control Techniques
Early ReturnsGuard ClausesJump Statements (goto)Break and ContinueFlatten Nested Conditionals7Logical Operators Advanced
Short-Circuit EvaluationConditional Logical OperatorsOperator PrecedenceRecap - Advanced Operators2Advanced Decision Making
Multiple ConditionsComplex Boolean LogicIf vs. Switch ComparisonNested Switch StatementsRecap - Advanced Decisions5Exception Handling
Try-Catch BasicsException TypesMultiple Catch BlocksWorking with FilesFinally BlockUsing vs. Try-FinallyCustom ExceptionsRecap - Error Handling3Loop Enhancements
Loop PerformanceIterating ComplexEach Loop TypeRefactoring LoopsRecap - Optimized Loops6Null Handling
Null Reference BasicsNullable Value TypesNull Checking PatternsDefensive ProgrammingRecap - Null Safety