Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Porque imprime 5?

public class Test {

    public static void main(String[] args) {
        int a = Integer.parseInt("10",2);
        int b = a == 10 ? null : 3;
        System.out.println(a + b);
    }
}
4 respostas
solução!

Aqui é atribuido o valor de 2 em a -> a = 2

int a = Integer.parseInt("10",2);

aqui é feito um uma verificação no valor de a. O resultado irar atribuir um valor para b, como a é diferente de 10, então b recebe 3.

int b = a == 10 ? null : 3;

escrevendo de outra maneira seria


if (a == 10) {
    b = null;
} else { 
    b = 3;
}

então o print mostra 5 -> 2 + 3 =5.

Uma explicaçãozinha rápida do operador ternário aqui

Aqui não seria o 10 em binário, com base 2?

int a = Integer.parseInt("10",2);

Delmo, ali é 10 em binário que em decimal vira 2. Entendeu?

Um exemplo:

int a = Integer.parseInt("1111", 2);

o numero 1111 em binario(2) corresponde a 15 em decimal, então nesse caso a = 15.