Java - error en método para buscar una posición con el nombre

 
Vista:

error en método para buscar una posición con el nombre

Publicado por Danni (12 intervenciones) el 10/12/2021 00:11:40
tengo un método donde se ingresa el nombre y te regresa los datos que hay en esa posición pero tengo un problema con el return que esta después del if, si lo dejo solo me muestra la información de la primer posición y en los demás me sale el mensaje que debe salir cuando la posición es null aunque estén registrados y si lo quito si se muestra la información de todos los clientes pero cuando la posición es null me marca error y no se muestra el mensaje que debería, alguna solución?

1
2
3
4
5
6
7
8
9
10
11
public Locker obtenerLocker(String nombre) {
        for (int i = 0; i < lockers.length; i++) {
            if (lockers[i].getNombre().equalsIgnoreCase(nombre)) {
 
                return lockers[i];
            }
            return null;
        }
        return null;
 
    }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public void mostrarLockerCliente() {
        Scanner tec = new Scanner(System.in);
        char opcion = 's';
        while (opcion == 's' || opcion == 'S') {
            System.out.println("Ingrese el nombre del cliente: ");
            String nombre = tec.next();
            if (gimnasio.obtenerLocker(nombre) == null) {
 
                System.out.println(" el cliente proporcionado no está registrado ");
                System.out.println("");
                System.out.println("¿Se desea consultar la informacion de otro cliente, (S/N)?.");
                opcion = tec.next().charAt(0);
                gimnasio.respuestInvalida(opcion);
            } else if(gimnasio.obtenerLocker(nombre).getNombre().equalsIgnoreCase(nombre)){
 
                System.out.println(" **** Confirmacion ****");
                System.out.println("Nombre del cliente: " + gimnasio.obtenerLocker(nombre).getNombre());
                System.out.println("Tamaño " + gimnasio.obtenerLocker(nombre).getTamanio());
                System.out.println("Contratacion: " + gimnasio.obtenerLocker(nombre).getTipoContratacion());
                System.out.println("Costo " + gimnasio.obtenerLocker(nombre).costoLocker());
                System.out.println("Locker asignado:" + gimnasio.obtenerPosicion(gimnasio.obtenerLocker(nombre)));
 
                System.out.println("");
                System.out.println("¿Se desea consultar la informacion de otro cliente, (S/N)?.");
                opcion = tec.next().charAt(0);
                gimnasio.respuestInvalida(opcion);
            }
        }
    }
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error en método para buscar una posición con el nombre

Publicado por Danni (12 intervenciones) el 10/12/2021 05:48:17
creo que ya lo pude resolver, cambié un poco el método

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public Locker obtenerLocker(String nombre) {
        for (int i = 0; i < lockers.length; i++) {
            if(lockers[i]==null){
 
            }
            else if (lockers[i].getNombre().equalsIgnoreCase(nombre)) {
 
                return lockers[i];
            }
 
        }
        return null;
 
    }

y lo puse como está en la condición del menú
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar