Como usar o if e else conforme a variação do valor da variavel

                                 r

         -1 |--------------|---- 0 ----|----------------| 1
          |                      |                      |
       Forte            Fraca  Nula  Fraca             Forte

A classificação de “r” conforme a variação do valor não esta funcionando.

// double r=0;
// double r=1;
// double r=-1;
// double r=0.05;
// double r=-0.05;
// double r=-0.91;
double r=0.91;

if (r == 1){

        System.out.println("A: " +r);

} else if (r > 0 || r < 1){

        System.out.println("positiva fraca: " +r);


} else if (r == 0){

        System.out.println("B: " +r);


} else if (r < 0 || r < -1){

       System.out.println("negativa fraca: " +r);


} else if (r == -1){

       System.out.println("C: " +r);

}
}

Consegue descrever qual o problema com seu código ou com o resultado? É melhor do que nós ficarmos tentando adivinhar.

Abraço.

Não esta funcionando…

Ser o valor de r for 1 cai na opção A.

Ser o valor de r for 0 cai na opção B.

Ser o valor de r for -1 cai na opção C.

======================================================================

======================================================================

Ser o valor de r estiver muito próximo de 0 no lado positivo cai na opção "positiva fraca "
Ser o valor de r estiver muito próximo de 0 no lado negativo cai na opção “negativa fraca”

Falta criar essas opções:

Ser o valor de r estiver muito longe de 0 no lado positivo cai na opção "D "

Ser o valor de r estiver muito longe de 0 no lado negativo cai na opção “E”

Algo parecido como um voltímetro analógico.

https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSm-JYj1uXmCzzGes_IVndyH879EG4oHCw974C1lwsbu1eXsnyG

Qual o valor (número) que diferencia entre uma correlação fraca e uma forte? É 0.05? Sem essa informação, não tem como construir os ifs que faltam.

Abraço.

Seria algo assim:

r= 1 Forte positivo
r= 0 Nula
r=-1 Forte negativa

Agora vem o grande problema:

0 < r < 1 = positivo

0 < r < -1 = negativa

? = positiva fraca (próximo a zero)

? = negativa fraca (próximo a zero)

? = positiva forte (longe de zero)

? = negativa forte (longe de zero)

1/2 = 0,5
-1/2 = -0,5

Acho que deveria estabelece um valor para “r”:

Entre 0,01 até 0,59 (positiva fraca)
Entre 0,6 até 0,99 (positiva forte)

Entre -0,01 até -0,59 (negativa fraca)
Entre -0,6 até -0,99 (negativa forte)

Fazer isso no if else não esta funcionando.

Sim, sem isso você não consegue dizer se é fraca ou forte. Se você não tem esse valor, vai ter de obter em algum lugar ou determinar um padrão (0.05, por exemplo).

Para ajustar os ifs, não é complicado. Pode ser algo assim:

if (r == 0)
  System.out.println("Nula: " +r);
else if (r < -0.05)
  System.out.println("Negativa forte: " +r);
else if (r < 0)
  System.out.println("Negativa fraca: " +r);
else if (r > 0.05)
  System.out.println("Positiva forte: " +r);
else
  System.out.println("Positiva fraca: " +r);

Obs: não testei, pode haver algum erro de sintaxe.

Abraço.

Como ficaria isso no ifs?

Entre 0,01 até 0,59 (positiva fraca)
Entre 0,6 até 0,99 (positiva forte)

Entre -0,01 até -0,59 (negativa fraca)
Entre -0,6 até -0,99 (negativa forte)

String getCorrelacao(double r) {
    if (r > 0) {
        if (r < 0.6) {
            return "positiva fraca";
        }
        return "positiva forte";
    }
    if (r < 0) {
        if (r > -0.6) {
            return "negativa fraca";
        }
        return "negativa forte";
    }
    return "nula";
}
1 curtida

Tem problema com valor negativo.

r >= 0.01 && r <= 0.59
r > 0.59 && r <= 0.99
r >= -0.01 && r <= -0.59
r > -0.59 && r <= -0.99

Tem problema com sua matemática, pois -0.01 é maior que -0.59 assim como -0.99 é menor que -0.59.
Então esses seus dois if nunca serão verdade:

r >= -0.01 && r <= -0.59
r > -0.59 && r <= -0.99

Chegou a testar o código que eu postei?

Seria isso?

// double r=0;
// double r=1;
// double r=-1;
// double r=0.05;
// double r=-0.05;
double r=-0.91;
// double r=0.91;

if (r == 1){

        System.out.println("A: " +r);

} else if (r == 0){

        System.out.println("B: " +r);

} else if (r == -1){

       System.out.println("C: " +r);

}


if (r >= 0.01 && r <= 0.59){

    System.out.println("D: " +r);
}


if (r > 0.59 && r <= 0.99){

    System.out.println("E: " +r);
}


 if (r >= -0.59  && r <= -0.01 ){

       System.out.println("F: " +r);

 }


 if (r > -0.99 && r <= -0.59 ){

       System.out.println("G: " +r);

}

Ser o valor de “r” for -0.99897 não vai funcionar. (BigDecimal)

Achei algo legal:

https://brainly.com.br/tarefa/6683229