FC ConcursosFC Concursos

Questão FC373264

Considere o código Java abaixo. public class Prova { public static void main(String[] args) { int[][] dados = new int[5][]; for (int i = 0; i < 5; i++) { dados[i] = new int[5]; for

Linguagens de Programação

FCC · 2022

Considere o código Java abaixo.

 

public class Prova {

     public static void main(String[] args) {

           int[][] dados = new int[5][];

           for (int i = 0; i < 5; i++) {

                dados[i] = new int[5];

                for (int j = 0; j < 5; j++) {

                     dados[i][j] = i + j;

                     System.out.println(dados[i][j]);

                }

           }

      }

}

 

Sobre o código

  1. ocorrerá uma exceção do tipo NullPointerException, pois na terceira linha não foi definido o número de linhas da array dados.
  2. ao tirar o comando dados[i] = new int[5]; o programa executará normalmente.
  3. i < 5 na quarta linha pode ser substituído por i < dados.length sem afetar a lógica de execução.
  4. o comando int[][] dados = new int[5][]; precisa obrigatoriamente ser substituído por int[][] dados = new int[5][5];.
  5. ocorrerá uma exceção do tipo NullPointerException no comando dados[i][j] = i + j;.
Mostrar resposta e comentário

Gabarito

Certo

Comentário do professor

A expressão i < 5 fixa o número de iterações em 5 porque a matriz foi declarada como int[][] dados = new int[5][]. Substituir por i < dados.length é equivalente, pois dados.length retorna exatamente o número de linhas (5) da matriz, fazendo o laço percorrer os índices 0 a 4.

Usar dados.length torna o código mais robusto e legível, evitando números "mágicos" espalhados. Se no futuro a declaração mudar para outra dimensão, o laço continuará correto sem precisar alterar a condição.

Importante: como cada linha é inicializada em tempo de execução com new int[5], a iteração sobre as colunas também poderia usar, de forma análoga, j < dados[i].length para manter a mesma flexibilidade.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo