Acesso aos Elementos de Matrizes 2D
Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 3 de 66.
Acessar elementos em um array 2D usa uma sintaxe semelhante à de arrays comuns, mas requer dois índices: um para a linha e outro para a coluna.
Observação: Em C#, há dois tipos de arrays multidimensionais: arrays retangulares (int[,]) e arrays denteados (int[][]). Esta lição aborda arrays denteados, nos quais cada linha é seu próprio array.
Crie um array irregular com 3 linhas e 4 colunas:
int[][] grid = new int[3][];
grid[0] = new int[4];
grid[1] = new int[4];
grid[2] = new int[4];Atribua um valor a uma posição específica (índice de linha 1, índice de coluna 2):
grid[1][2] = 42;Leia um valor de uma posição específica (índice da linha 0, índice da coluna 3):
int value = grid[0][3];Como os índices começam em 0, o índice da linha 0 é a 1ª linha e o índice da coluna 3 é a 4ª coluna.
Lembre-se de que os índices de array começam em 0, portanto, os intervalos de índices válidos são:
- Linhas: índice 0 a 2 (para um array de 3 linhas: a 1ª linha é o índice 0, a 2ª é o índice 1, a 3ª é o índice 2)
- Colunas: índice 0 a 3 (para um array de 4 colunas: a 1ª coluna é o índice 0, a 2ª é o índice 1 e assim por diante)
grid[3][2]), obterá uma IndexOutOfRangeException.Desafio
MédioEscreva um método chamado getElement que receba três argumentos:
- Um array de inteiros 2D (
int[][] matrix) - Um índice de linha (
int row) - Um índice de coluna (
int col)
O método deve retornar o elemento na posição especificada se os índices forem válidos. Se algum dos índices estiver fora do intervalo, o método deverá retornar -1.
Experimente você mesmo
public class GetElement
{
public static int getElement(int[][] array, int row, int col)
{
// Escreva seu código aqui
}
}Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Matrizes Multidimensionais
Noções Básicas de Matrizes 2DDeclaração e Inicialização de Matrizes 2DAcesso aos Elementos de Matrizes 2DLoops Aninhados com Matrizes 2DMatrizes IrregularesOperações Comuns com MatrizesRevisão - Multidimensional4Técnicas de Controle de Fluxo
Retornos AntecipadosCláusulas de GuardaInstruções de Salto (goto)Break e ContinueSimplificando Condicionais Aninhadas7Operadores Lógicos Avançados
Avaliação de Curto-CircuitoOperadores Lógicos CondicionaisPrecedência de OperadoresRevisão - Operadores Avançados2Tomada de Decisões Avançada
Múltiplas CondiçõesLógica Booleana ComplexaComparação entre If e SwitchInstruções Switch AninhadasRevisão - Decisões Avançadas5Tratamento de Exceções
Noções básicas de Try-CatchTipos de ExceçãoMúltiplos blocos CatchTrabalhando com ArquivosBloco FinallyUsando Using vs. Try-FinallyExceções PersonalizadasRecapitulação - Tratamento de Erros3Aprimoramentos de Loops
Desempenho de LoopsIteração de Estruturas ComplexasCada Tipo de LoopRefatoração de LoopsRevisão - Loops Otimizados6Tratamento de Nulos
Fundamentos de Referências NulasTipos de Valor AnuláveisPadrões de Verificação de NulosProgramação DefensivaRecapitulação — Segurança contra NulosPratique por conta própria: Compilador de C# online