Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Como é que isso dá true true?

class Program{
    public static void main(String[] args){
        int a[] = {1,2,053,4};
        int b[][] = {{1,2,4},{2,2,1},{0,43,2}};
        System.out.print(a[3] == b[0][2]); //true
        System.out.print(" " + (a[2] == b[2][1])); //true
    }
}
1 resposta
solução!

Delmo, vamos lá matar essa pegadinha... hehe

Vamos manter em mente que todo vetor começa com 0 (zero).

No primeiro sysout, a posição 3 do vetor a (a[3]) é 4. A linha 0 (zero) da matriz b é {1, 2, 4}, o elemento da posição 2 é 4 também. 4 é igual a 4, por isso dá true.

No segundo sysout, a posição 2 do vetor a (a[2]) é 053 (a pegadinha é que ele é um octal, perceba que começa com 0 (zero). 053 em octal é 43 em decimal. A linha 1 da matriz b é {0, 43, 2}. Como a posição 1 da linha 2 da matriz b (b[2][1]) é 43 (decimal), a comparação de 053 (octal) com 43 decimal dá true, uma vez que, como já dito, 053 em octal convertido para decimal dá 43.

Perceba que os System.out.print não saltam linha (só o println faz isso), assim, a concatenação do espaço no segundo sysout, gera como saída

true true

Espero ter respondido sua pergunta.

Abraço.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software