Java - saben como hacer para que cuando no se ingresa valor en un switch no marque error?

 
Vista:

saben como hacer para que cuando no se ingresa valor en un switch no marque error?

Publicado por zero (12 intervenciones) el 09/12/2021 23:13:56
saben como hacer para que en un switch al no ingresar ningún valor y solo dar enter no salte error? no me enseñaron eso y no se como buscarlo

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
public void desplegarMenu(){
        Scanner tec = new Scanner (System.in);
        char opcion;
        do{
            System.out.println("-------------------------------------------");
            System.out.println("               Gimnasio                 ");
            System.out.println("-------------------------------------------");
            System.out.println("               Menu Principal");
            System.out.println("-------------------------------------------");
            System.out.println("1._ Registrar renta de locker");
            System.out.println("2._ Eliminar renta de locker");
            System.out.println("3._ Mostrar informacion del locker por cliente");
            System.out.println("4._ Editar cliente registrado");
            System.out.println("5._ Mostrar mapa de ocupacion por tipo de contratacion");
            System.out.println("6._ Mostrar listado de lockers");
            System.out.println("7._ Terminar operacion");
            System.out.println("-------------------------------------------");
            System.out.println("Teclee su opcion: ");
            opcion=tec.nextLine().charAt(0);
            System.out.println("");
 
            switch(opcion){
                case'1':
                    registrarRentaLocker( );
                    break;
                case'2':
                    eliminarRentaLocker();
                    break;
                case'3':
                    mostrarLockerCliente();
                    break;
                case'4':
                    editarClienteRegistrado();
                    break;
                case'5':
                    mostrarMapaOcupacion();
                    break;
                case'6':
                    listadoLockers();
                    break;
                case'7':
                    break;
                default:
                        System.out.println("*** opcion no valida, ingrese una del 1 al 7 ");
                        System.out.println("Presione Enter Para Continuar ");
                        tec.nextLine();
                        System.out.println("INGRESE LA OPCION DESEADA: ");
                        opcion=tec.nextLine().charAt(0);
                        break;
            }
        }while(opcion!= '7');
    }

ya que cuando hago eso de no ingresar ningún valor me salta este error
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:711)
at proyecto_final.Menu.desplegarMenu(Menu.java:31)
at proyecto_final.Principal.main(Principal.java:10)
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

saben como hacer para que cuando no se ingresa valor en un switch no marque error?

Publicado por gaspy (3 intervenciones) el 10/12/2021 10:39:51
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
public void desplegarMenu(){
		Scanner tec = new Scanner (System.in);
        char opcion;
        String data;
        do{
            System.out.println("-------------------------------------------");
            System.out.println("               Gimnasio                 ");
            System.out.println("-------------------------------------------");
            System.out.println("               Menu Principal");
            System.out.println("-------------------------------------------");
            System.out.println("1._ Registrar renta de locker");
            System.out.println("2._ Eliminar renta de locker");
            System.out.println("3._ Mostrar informacion del locker por cliente");
            System.out.println("4._ Editar cliente registrado");
            System.out.println("5._ Mostrar mapa de ocupacion por tipo de contratacion");
            System.out.println("6._ Mostrar listado de lockers");
            System.out.println("7._ Terminar operacion");
            System.out.println("-------------------------------------------");
            System.out.println("Teclee su opcion: ");
 
            data=tec.nextLine();
            if(data.isEmpty())
				opcion=' ';
            else
				opcion=data.charAt(0);
 
            System.out.println("");
            switch(opcion){
                case'1':
                    registrarRentaLocker( );
                    break;
                case'2':
                    eliminarRentaLocker();
                    break;
                case'3':
                    mostrarLockerCliente();
                    break;
                case'4':
                    editarClienteRegistrado();
                    break;
                case'5':
                    mostrarMapaOcupacion();
                    break;
                case'6':
                    listadoLockers();
                    break;
                case'7':
                    break;
                default:
                        System.out.println("*** opcion no valida, ingrese una del 1 al 7 ");
                        System.out.println("Presione Enter Para Continuar ");
                        tec.nextLine();
                        break;
            }
        }while(opcion!= '7');
	}
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