Foro de elhacker.net

Programación => Java => Mensaje iniciado por: reygecko en 23 Diciembre 2012, 15:13 pm



Título: Un booleano no me respeta
Publicado por: reygecko en 23 Diciembre 2012, 15:13 pm
Buenos días a todos.

Los booleanos deberían ser sencillos, sólo pueden valer "true" o "false". Pues me están volviendo loco.  :huh:

Con este programa tan sencillo, pretendo comprobar el valor de una variable booleana:

Código:
public class booleano {
    public static void main(String args[]) {
        boolean condicion = false;
        if (condicion = false)
            System.out.println("CONDICIÓN VALE FALSE");
        if (condicion = true)
            System.out.println("CONDICIÓN VALE TRUE");
    }
}

Pues bien, aunque yo mismo inicializo la variable "condicion" con el valor "FALSE", sin embargo el resultado que obtengo al ejecutar el programa es "CONDICIÓN VALE TRUE".

Por favor, ¿podría alguien ser tan amable de explicarme qué estoy haciendo mal? Muchas gracias.


Título: Re: Un booleano no me respeta
Publicado por: RevangelyonX en 23 Diciembre 2012, 17:05 pm
Te estas colando en los iguales del IF. Lo estas inicializando en lugar de compararlo.

== o equals()

Salu2


Título: Re: Un booleano no me respeta
Publicado por: reygecko en 23 Diciembre 2012, 17:56 pm
Maldita sea, es cierto.

Perdón por mi estupidez de pregunta,  muchas gracias por responder.

Un saludo.


Título: Re: Un booleano no me respeta
Publicado por: Slider324 en 24 Diciembre 2012, 09:14 am
Podrias usar if y else if quedando de esta forma:

Código:
public class booleano {
    public static void main(String args[]) {
        boolean condicion = false;
        if (condicion == false){
            System.out.println("CONDICIÓN VALE FALSE");
        }else if (condicion == true){
            System.out.println("CONDICIÓN VALE TRUE");
     }
   }
}


Título: Re: Un booleano no me respeta
Publicado por: Valkyr en 24 Diciembre 2012, 14:41 pm
Y estarías haciendo una comprobación de más. ¿Si un booleano solo tiene dos valores posibles, por qué comprobar los dos?

Código
  1. public class booleano {
  2.    public static void main(String args[]) {
  3.        boolean condicion = false;
  4.        if (!condicion) {
  5.            System.out.println("CONDICIÓN VALE FALSE");
  6.        } else {
  7.            System.out.println("CONDICIÓN VALE TRUE");
  8.        }
  9.    }
  10. }
  11.  


Título: Re: Un booleano no me respeta
Publicado por: reygecko en 24 Diciembre 2012, 18:46 pm
Sí, Valkyr, tienes razón.  Lo que ocurre es que mi código original no era así, allí sólo hice una comprobación.  Al obtener un resultado que no esperaba es cuando testeé exhaustivamente al booleano por ese motivo hice este pequeño código donde expresamente daba valor a cada una de las dos posibilidades.

Luego, como ya he visto, todo era provocado por mi ignorancia del lenguaje.  Y todo era más sencillo, claro.

Gracias también a ti por la ayuda.  ;)