Nested Loops with 2D Arrays
Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 4 из 66.
При работе с двумерными массивами (рваными массивами) в C# мы часто используем вложенные циклы для перебора каждой строки и каждого столбца, что позволяет нам обращаться или изменять каждый элемент массива.
Вот типичная структура вложенных циклов для двумерного массива в C#:
for (int i = 0; i < array.Length; i++) {
// Внешний цикл проходит по строкам
for (int j = 0; j < array[i].Length; j++) {
// Внутренний цикл проходит по столбцам
// Доступ или изменение array[i][j]
}
}Внешний цикл проходит по строкам, а внутренний цикл — по столбцам каждой строки. Таким образом, вы можете получить доступ к каждому элементу двумерного массива, используя array[i][j].
Задание
ЛегкоprintMatrix, который принимает двумерный массив (рваный массив) целых чисел в качестве аргумента и выводит его элементы в формате матрицы. Используйте вложенные циклы для итерации по строкам и столбцам массива.Выводите каждый элемент, за которым следует пробел (включая последний элемент в каждой строке), затем выводите перевод строки после каждой строки. Например, для строки
[1, 2, 3] вывод должен быть 1 2 3 (с завершающим пробелом), за которым следует перевод строки.Шпаргалка
Используйте вложенные циклы для итерации по двумерным массивам (рваными массивами) в C#:
for (int i = 0; i < array.Length; i++) {
// Outer loop iterates over rows
for (int j = 0; j < array[i].Length; j++) {
// Inner loop iterates over columns
// Access or modify array[i][j]
}
}Внешний цикл итерируется по строкам с использованием array.Length, а внутренний цикл — по столбцам с использованием array[i].Length. Доступ к элементам осуществляется с помощью array[i][j].
Попробуйте сами
// Пишите свой код только внутри класса. Не пишите Main() или любой код вне этого класса.
using System;
class PrintMatrix
{
public static void printMatrix(int[][] matrix)
{
// Напишите свой код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
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