Qual a diferença de colocar a1[1].length; no for e fora do for?

3 respostas
cintiarsbr

Pessoal

Estou fazendo alguns exercícios, e em um deles existe o seguinte código:
public static void main (String[] args) throws Exception{
	int[][] a1 = {{1,2},{3,4,5},{6,7,8,9},{}};
	    for (int i = 0; i < a1.length; i++) {
	      System.out.print(a1[i].length);
	}
}

eu fui testar este código no eclipse e coloquei a expressão fora do for, da seguinte forma:

public static void main (String[] args) throws Exception{
	int[][] a1 = {{1,2},{3,4,5},{6,7,8,9},{}};
	    for (int i = 0; i < a1.length; i++) {
	      System.out.print(a1[i].length);
	}
      a1[1].length

}

e o compilador acusa o seguinte erro pq a expressão esta fora do for, pq?

Syntax error, insert “AssignmentOperator Expression” to complete Expression

Obrigada :smiley:

3 Respostas

marcosharbs

ta faltando um operador de comparação ou atribuição para completar a expressão tipo se vc fier algo como:

int a = a1[1].lenght;

vai funcionar, vc precisar atribuir o valor a algo ou comparalo como no for ele compara esse valor pra ver se o i eh menor, falto vc completar a expressão.

Lavieri

justamente isso que o marcos falou…

é que não tem sentido vc buscar um parametro de um objeto, se não vai atribuir ele a nada, ou não vai usar

System.out.println(a1[1].length ); //da um sentido ao dado, pq agora vc ta imprimendo o valor
int teste = a1[1].length; //tb da sentido, pq vc passa o valor pra uma variável

a1[1].length ; //não tem sentido, pq vc vai pegar o dado e fazer nada com ele

como length é um valor, ele tem q ser passado a alguem ou usaod em algum lugar, vc pode invocar sem atribuir a ninguem métodos ^^

cintiarsbr

hehe, valeu galera, desculpe incomodar com dúvidas tão bobas, mas é que eu pesquisei no google e não achei alguma coisa que ajudasse!!!

Criado 8 de janeiro de 2009
Ultima resposta 8 de jan. de 2009
Respostas 3
Participantes 3