Resultado if falso cuando deberia ser verdadero

  • 5 Respuestas
  • 1829 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado tomaco

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil

Resultado if falso cuando deberia ser verdadero

  • en: Mayo 04, 2018, 04:40:59 pm
Tengo una clase Cerradura con los atributos claveDeApertura y cantidadDeFallosConsecutivosQueLaBloquean y el método abrir() en el cual tengo que verificar si se pasó la clave correcta, si no llegó a la cantidad de fallos consecutivos y si la cerradura no está bloqueada. Por defecto el estado de la cerradura y de bloqueo es false (la cerradura está cerrada y no está bloqueada). Cuando paso una clave correcta, por alguna razón el if me da falso al revisar la clave pasada con la clave del objeto pero cuando hago el debug resulta que el if deberia de ser verdadero porque cumple con todo lo solicitado y recibe bien el dato y lo mas gracioso es que antes funcionaba y de golpe dejó de funcionar jaja. Si pongo una clave incorrecta funciona bien pero me llama la atención eso.

Código: Java
  1. public You are not allowed to view links. Register or Login abrir(You are not allowed to view links. Register or Login clave)
  2.    {
  3.       if((clave == claveDeApertura) && (cantidadFallos < cantidadDeFallosConsecutivosQueLaBloquean) && (!estadoBloqueo))
  4.       {
  5.          estadoCerradura = true;
  6.          cantidadFallos = 0;
  7.          return true;
  8.       }
  9.      
  10.       cantidadFallos++;
  11.      
  12.       if(cantidadFallos == cantidadDeFallosConsecutivosQueLaBloquean)
  13.       {
  14.          estadoBloqueo = true;
  15.          estadoCerradura = false;
  16.       }
  17.      
  18.       return false;
  19.    }

este es el método abrir()
« Última modificación: Mayo 04, 2018, 07:35:32 pm por Gabriela »

Desconectado sadfud

  • *
  • Moderador
  • Mensajes: 200
  • Actividad:
    10%
  • Country: cl
  • Reputación 10
  • Skype: SadFud75
    • Ver Perfil
    • Blog
debuggealo paso a pasa y encontraras el problema
Mi blog: You are not allowed to view links. Register or Login
Si necesitas ayuda, no dudes en mandar MP

Desconectado tomaco

  • *
  • Underc0der
  • Mensajes: 27
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
You are not allowed to view links. Register or Login
debuggealo paso a pasa y encontraras el problema
es lo que hice (arriba lo dije) y cuando veo los valores que recibe el if, son correctos por lo tanto deberia de entrar. Probando me di cuenta que "el fallo" esta en la primera comparacion, la de la clave atributo y la clave del parametro pero en el debug ambos son iguales por lo que no entiendo porque no entra al if (lo demas del if funciona bien, ya lo comprobe)

Desconectado sadfud

  • *
  • Moderador
  • Mensajes: 200
  • Actividad:
    10%
  • Country: cl
  • Reputación 10
  • Skype: SadFud75
    • Ver Perfil
    • Blog
Comparte el codigo completo del proyecto para poder ayudarte.
Mi blog: You are not allowed to view links. Register or Login
Si necesitas ayuda, no dudes en mandar MP

Desconectado rollth

  • *
  • Ex-Staff
  • *****
  • Mensajes: 876
  • Actividad:
    0%
  • Reputación 16
  • El conocimiento es libre.
  • Twitter: @RoloMijan
    • Ver Perfil
    • Whateversec
    • Email
El problema es que estás comparando dos Strings con "==", esto compara solo si las Referencias son iguales, no si el valor es el mismo. Te pongo un ejemplo.

"test" == "test" te dará verdadero
new String("test") == "test" te dará falso

Para comparar Strings en Java tendrás que usar .equals()

Saludos.

Rollth
Buen hacker mejor persona.
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login
You are not allowed to view links. Register or Login

Desconectado salteadorNeo

  • *
  • Underc0der
  • Mensajes: 7
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
Buenas...

En java los objetos no se comparan con el == en la clase integer hay un metodo que creo que se llama intvalue que lo devuelve como un int, ya que sino los objetos con == siempre seran distintos..

 

[SOLUCIONADO] ¿Cómo hago peticiones sql cuando hay una "@"?

Iniciado por proxy_lainux

Respuestas: 4
Vistas: 3408
Último mensaje Febrero 02, 2017, 01:46:19 pm
por proxy_lainux
Mensaje de error MAPI cuando importación o exportación mensajes en Outlook Expre

Iniciado por forroble86

Respuestas: 2
Vistas: 2141
Último mensaje Julio 05, 2016, 04:55:02 am
por Stiuvert
[SOLUCIONADO] Antivirus detecta Server cuando se auto inicia en el registro

Iniciado por elreymusedes

Respuestas: 3
Vistas: 1795
Último mensaje Agosto 05, 2016, 06:19:51 am
por elreymusedes
[SOLUCIONADO] Miles de () en #Data cuando ejecuto modo monitor.

Iniciado por greentrak

Respuestas: 5
Vistas: 1898
Último mensaje Julio 16, 2016, 04:02:49 pm
por greentrak
[SOLUCIONADO] Hacer Cracking WEP/WPA/WPA2 cuando no hay data o station?

Iniciado por Dixian

Respuestas: 7
Vistas: 6488
Último mensaje Junio 21, 2013, 05:15:36 pm
por mfuck