Zagnieżdżone pętle z tablicami 2D
Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 4 z 66.
Podczas pracy z tablicami 2D (tablicami postrzępionymi) w C# często używamy zagnieżdżonych pętli, aby przejść przez każdy wiersz i każdą kolumnę, co pozwala nam uzyskać dostęp do każdego elementu tablicy lub go zmodyfikować.
Oto typowa struktura zagnieżdżonych pętli dla tablicy 2D w C#:
for (int i = 0; i < array.Length; i++) {
// Pętla zewnętrzna iteruje po wierszach
for (int j = 0; j < array[i].Length; j++) {
// Pętla wewnętrzna iteruje po kolumnach
// Uzyskaj dostęp do array[i][j] lub zmodyfikuj jego wartość
}
}Pętla zewnętrzna iteruje po wierszach, a pętla wewnętrzna iteruje po kolumnach każdego wiersza. W ten sposób możesz uzyskać dostęp do każdego elementu tablicy 2D za pomocą array[i][j].
Wyzwanie
ŁatwyprintMatrix, która przyjmuje jako argument dwuwymiarową tablicę (tablicę postrzępioną) liczb całkowitych i wyświetla jej elementy w formacie macierzy. Użyj zagnieżdżonych pętli, aby iterować po wierszach i kolumnach tablicy.Wyświetl każdy element, po którym następuje spacja (również po ostatnim elemencie w każdym wierszu), a następnie po każdym wierszu wyświetl znak nowej linii. Na przykład dla wiersza
[1, 2, 3] wynik powinien wynosić 1 2 3 (ze spacją na końcu), po czym powinien nastąpić znak nowej linii.Spróbuj swoich sił
// Napisz swój kod wyłącznie wewnątrz klasy. Nie pisz Main() ani żadnego kodu poza tą klasą.
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// Napisz tutaj swój kod
}
}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