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

Comparação de array com operador ==

public class teste{
    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]);
    System.out.print(" " + (a[2]==b[2][1]));
    }
}

Boa tarde, dado o código acima temos como saída true true. no primeiro print fica evidente o motivo de imprimir true, porém tenho uma dúvida no segundoprint System.out.print(" " + (a[2]==b[2][1])); porque ele converte somente o primeiro array a[2] para octal ao comparar os arrays ?

1 resposta
solução!

Olá Geovane,

Você está correto, 053 (representação em octal) é igual a 43 (representação decimal). Acho bem improvável encontrar uma questão assim na prova de certificação já que ela avaliaria mais se o candidato sabe converter octal para decimal do que Java. Geralmente eles vão usar a representação octal para geral algum erro de compilação. Por exemplo:

int dia = 21;
int mes = 09;
int ano = 2017;

Nesse caso, esse código não compilaria pois 9 não é um dígito válido na notação octal. Esse tipo de pergunta avalia se você sabe que o 0 a esquerda indica a representação octal mas não cobra que você saiba converter de octal para decimal.