Foros del Web » Programación para mayores de 30 ;) » Java »

Problemilla con boleano

Estas en el tema de Problemilla con boleano en el foro de Java en Foros del Web. Hola!! Mientras estoy esperando la respuesta a la otra duda, aprovecho para preguntaros otra cosilla que no me sale. Seguro que es una tonteria, pero ...
  #1 (permalink)  
Antiguo 03/06/2012, 16:18
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 13 años, 7 meses
Puntos: 1
Problemilla con boleano

Hola!!

Mientras estoy esperando la respuesta a la otra duda, aprovecho para preguntaros otra cosilla que no me sale. Seguro que es una tonteria, pero no tengo ni idea el porque me falla.
Os cuento:

Tengo un módulo para prestar los libros, que lee el array llamado arraypublicaciones que se encuentra en la clase PanelAceptar. He pensado en introducir una variable de tipo boleano para que cuando el libro haya sido prestado, me salga un mensaje de que ya está prestado, y que no vuelva a salir el mensaje de que el usuario tiene X días para devolverlo.

El código es el siguiente:

Código PHP:
        boolean prestadoLibro true;
        
        
String codigopublicacion0 jTextField1.getText();
        
String codigosocio0 jTextField2.getText();

        if (
prestadoLibro == false) {
            
JOptionPane.showMessageDialog(this"Ya está prestado""ERROR"JOptionPane.INFORMATION_MESSAGE);
            
        } while (
prestadoLibro==true) {
            if (!(
PanelAceptar.arraypublicaciones.isEmpty())) {
                for (
int i 0PanelAceptar.arraypublicaciones.size(); i++) {
                    if (
PanelAceptar.arraypublicaciones.get(i).getCodigo().equals(codigopublicacion0)) {
                        if (
PanelAltaSocios.socios.containsKey(codigosocio0)) {
           
                            
int posicion codigosocio0.indexOf('A');

                            if (
posicion == -1) {
                                
JOptionPane.showMessageDialog(this"El libro con codigo " codigopublicacion0 " ha sido prestado. Tiene 10 días para devolverlo""BIBLIOTECA UNIVERSITARIA"JOptionPane.INFORMATION_MESSAGE);
                                break;
                            } else {
                                
JOptionPane.showMessageDialog(this"El libro con codigo " codigopublicacion0 " ha sido prestado. Tiene 6 días para devolverlo""BIBLIOTECA UNIVERSITARIA"JOptionPane.INFORMATION_MESSAGE);
                                break;
                            }
                        }
                    }
                }
            }
           
prestadoLibro=false;  
        } 
Pero el fallo es que NUNCA entra al primer if y no imprime el mensaje de que ya está prestado, si no que directamente entra en el bucle while y dice de nuevo los días que tiene el usuario para devolver el libro.

No se qué es lo que puede fallar... agradeceré cualquier consejo que me podáis dar.

Un saludo!
  #2 (permalink)  
Antiguo 03/06/2012, 17:02
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 10 años, 6 meses
Puntos: 34
Respuesta: Problemilla con boleano

Prueba cambiando el while por un else:
Código PHP:
Ver original
  1. boolean prestadoLibro = true;
  2.        
  3.         String codigopublicacion0 = jTextField1.getText();
  4.         String codigosocio0 = jTextField2.getText();
  5.  
  6.         if (!prestadoLibro) {
  7.             JOptionPane.showMessageDialog(this, "Ya está prestado", "ERROR", JOptionPane.INFORMATION_MESSAGE);
  8.            
  9.         } else {
  10.             if (!(PanelAceptar.arraypublicaciones.isEmpty())) {
  11.                 for (int i = 0; i < PanelAceptar.arraypublicaciones.size(); i++) {
  12.                     if (PanelAceptar.arraypublicaciones.get(i).getCodigo().equals(codigopublicacion0)) {
  13.                         if (PanelAltaSocios.socios.containsKey(codigosocio0)) {
  14.            
  15.                             int posicion = codigosocio0.indexOf('A');
  16.  
  17.                             if (posicion == -1) {
  18.                                 JOptionPane.showMessageDialog(this, "El libro con codigo " + codigopublicacion0 + " ha sido prestado. Tiene 10 días para devolverlo", "BIBLIOTECA UNIVERSITARIA", JOptionPane.INFORMATION_MESSAGE);
  19.                                 break;
  20.                             } else {
  21.                                 JOptionPane.showMessageDialog(this, "El libro con codigo " + codigopublicacion0 + " ha sido prestado. Tiene 6 días para devolverlo", "BIBLIOTECA UNIVERSITARIA", JOptionPane.INFORMATION_MESSAGE);
  22.                                 break;
  23.                             }
  24.                         }
  25.                     }
  26.                 }
  27.             }
  28.            prestadoLibro=false;  
  29.         }
  #3 (permalink)  
Antiguo 04/06/2012, 02:35
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Problemilla con boleano

Hola!!

Gracias por responder.

Te cuento que ya he probado con else y tampoco va. Además, si pongo else NetBeans me dice que esa variable nunca se usa, en cambio si pongo while no me dice eso, pero tampoco entra en el if el programa .

Gracias,
Un saludo!
  #4 (permalink)  
Antiguo 04/06/2012, 13:12
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 10 años, 6 meses
Puntos: 34
Respuesta: Problemilla con boleano

Bueno tal vez se deba a que siempre vale true:
Código PHP:
Ver original
  1. boolean prestadoLibro = true;
y para que entre en el if debe de valer false.
  #5 (permalink)  
Antiguo 04/06/2012, 13:41
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Problemilla con boleano

Pero necesito que en la primera interaccion sea true para que entre en el bucle y se de alta el libro. A partir de ahí es cuando tiene que valer false...
  #6 (permalink)  
Antiguo 04/06/2012, 15:30
 
Fecha de Ingreso: diciembre-2011
Mensajes: 152
Antigüedad: 10 años, 6 meses
Puntos: 34
Respuesta: Problemilla con boleano

El problema es que siempre que entras a tu metodo/funcion le asignas true, por lo tanto nunca entrara en el if, trata de mover tu variable prestadoLibro fuera de tu metodo/funcion.
  #7 (permalink)  
Antiguo 08/06/2012, 05:48
 
Fecha de Ingreso: noviembre-2008
Mensajes: 13
Antigüedad: 13 años, 7 meses
Puntos: 1
Respuesta: Problemilla con boleano

Hola!! Y perdona por la tardanza en contestar.

Te cuento que ya lo había probado antes lo que me has dicho, poner la variable global, pero tampoco me funcionó.

Al final ya tengo terminado el programa que nos pedían en clase. Y este boleano para préstamos al final lo cambie por un HashMap que es lo que mejor correspondía en este caso.

Gracias igualmente por tu ayuda.

Un saludo!

Etiquetas: clase, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:48.