Questão do Dia!

3 respostas
F

Olá galera,
pra nao ficarmos parados vamos resolver algumas questoes.
Explicacoes sao bem vindas.

class D {
  static boolean m(double v) {
    return(v != v == Double.isNaN(v));
  }
  public static void main (String args[]) {
    double d1 = Double.NaN;
    double d2 = Double.POSITIVE_INFINITY;
    double d3 = Double.MAX_VALUE;
    System.out.print(m(d1) + "," + m(d2) + "," + m(d3));
}}

What is the result of attempting to compile and run the program? 

a.  Prints: false,false,false 
b.  Prints: false,false,true 
c.  Prints: false,true,false 
d.  Prints: false,true,true 
e.  Prints: true,false,false 
f.  Prints: true,false,true 
g.  Prints: true,true,false 
h.  Prints: true,true,true 
i.  Compile-time error 
j.  Run-time error 
k.  None of the above

questao tirada do mock do DAN!

3 Respostas

S

Vejamos:

Eu entendo essa expressão como:

Para d1:
Double.NaN ou Float.NaN não são iguais a nada, nem a si mesmos. Portanto, v != v retorna true. Double.isNaN(Double.NaN) também retorna true. A expressão final fica true == true.

Para d2:
v != v é false. isNaN(Double.POSITIVE_INFINITY) também é false. Resultado: false == false ----> (true)

Para d3:
v != v é false. isNaN(Double.MAX_VALUE) também. Mesmo caso do anterior.

Resposta: H (true, true, true)

F

Schuenemann, faço das tuas palavras as minhas! opção (h)

Manda outra aí GUGA, essa foi moleza :grin:

D

Bom, por enquanto cheguei a essas:

true, x, true.

a minha duvida eh se POSITIVE_INFINITY == POSITIVE_INFINITY eh true…, vou considerar q seja, entao fica

true, true, true (H)

Criado 16 de março de 2005
Ultima resposta 17 de mar. de 2005
Respostas 3
Participantes 4