Menu
Coddy logo textTech

Iterating Complex

Часть раздела Логика и управление потоком путешествия по C# на Coddy — урок 14 из 66.

Итерация по сложным структурам, таким как вложенные массивы, требует специальных подходов.

Итерация по двумерному массиву с использованием вложенных циклов:

int[][] matrix = new int[3][];
matrix[0] = new int[] { 1, 2, 3 };
matrix[1] = new int[] { 4, 5, 6 };
matrix[2] = new int[] { 7, 8, 9 };

for (int i = 0; i < matrix.Length; i++)
{
    for (int j = 0; j < matrix[i].Length; j++)
    {
        Console.WriteLine(matrix[i][j]);
    }
}

Итерация по массиву строк с обработкой каждого символа:

string[] words = { "hello", "world" };

for (int i = 0; i < words.Length; i++)
{
    for (int j = 0; j < words[i].Length; j++)
    {
        Console.WriteLine(words[i][j]);
    }
}

Подсчёт элементов в зубчатом массиве:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2, 3 };
jaggedArray[1] = new int[] { 4, 5 };
jaggedArray[2] = new int[] { 6 };

int totalItems = 0;
for (int i = 0; i < jaggedArray.Length; i++)
{
    totalItems += jaggedArray[i].Length;
}
Console.WriteLine($"Total items: {totalItems}");
challenge icon

Задание

Легко

Создайте метод с именем countElements, который:

  1. Принимает рваный массив строк (string[][]) в качестве параметра
  2. Подсчитывает, сколько элементов содержится во всем рваном массиве
  3. Возвращает общее количество

Например, для:

[
  ["apple", "orange", "apple"],
  ["banana", "apple"],
  ["orange"]
]

Результат должен быть 6 (3 + 2 + 1).

Шпаргалка

Используйте вложенные циклы для итерации по двумерным массивам:

int[][] matrix = new int[3][];
matrix[0] = new int[] { 1, 2, 3 };
matrix[1] = new int[] { 4, 5, 6 };
matrix[2] = new int[] { 7, 8, 9 };

for (int i = 0; i < matrix.Length; i++)
{
    for (int j = 0; j < matrix[i].Length; j++)
    {
        Console.WriteLine(matrix[i][j]);
    }
}

Итерация по массивам строк и доступ к отдельным символам:

string[] words = { "hello", "world" };

for (int i = 0; i < words.Length; i++)
{
    for (int j = 0; j < words[i].Length; j++)
    {
        Console.WriteLine(words[i][j]);
    }
}

Подсчет общего количества элементов в зубчатом массиве:

int[][] jaggedArray = new int[3][];
jaggedArray[0] = new int[] { 1, 2, 3 };
jaggedArray[1] = new int[] { 4, 5 };
jaggedArray[2] = new int[] { 6 };

int totalItems = 0;
for (int i = 0; i < jaggedArray.Length; i++)
{
    totalItems += jaggedArray[i].Length;
}
Console.WriteLine($"Total items: {totalItems}");

Попробуйте сами

using System;
public class CountElements
{
    // Реализуйте метод countElements
    public static int countElements(string[][] nestedArray)
    {
        // Напишите ваш код здесь
        
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком