elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Problema con switch
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema con switch  (Leído 2,151 veces)
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Problema con switch
« en: 5 Octubre 2018, 21:04 pm »

Buenas tengo un problema con un switch
Código
  1. [code]public void Vehiculos () {
  2. int op1, n;
  3. String busca, busca2;
  4. String matricula [] = new String [0];
  5. String marca [] = new String [0];
  6. String modelo [] = new String [0];
  7. String color [] = new String [0];
  8. String cantPuertas [] = new String [0];
  9. do {
  10. System.out.println("1.1- Registrar");
  11. System.out.println("1.2- Modificar");
  12. System.out.println("1.3- Eliminar");
  13. System.out.println("1.4- Listar todos");
  14. System.out.println("1.5- Buscar");
  15. System.out.println("0- Volver");
  16. System.out.print("Opcion: ");
  17. op1 = dato.nextInt();
  18. switch (op1) {
  19. case 1:
  20. System.out.print("Cuantos vehiculos desea registrar? ");
  21. n = dato.nextInt();
  22. matricula = new String [n];
  23. marca = new String [n];
  24. modelo = new String [n];
  25. color = new String [n];
  26. cantPuertas = new String [n];
  27.  
  28. for (int f= 0; f<n ; f++) {
  29. dato.nextLine();
  30. System.out.print("Matricula: ");
  31. matricula [f] = dato.nextLine();
  32. System.out.print("Marca: ");
  33. marca [f] = dato.nextLine();
  34. System.out.print("Modelo: ");
  35. modelo [f] = dato.nextLine();
  36. System.out.print("Color: ");
  37. color [f] = dato.nextLine();
  38. System.out.print("Cantidad de puertas: ");
  39. cantPuertas [f] = dato.next(); }
  40. break;
  41.  
  42. case 2:
  43.  
  44. break;
  45.  
  46. case 3:
  47. System.out.println("Cual desea eliminar? ");
  48. busca2 = dato.nextLine();
  49. for (int f= 0; f<matricula.length; f++) {
  50. if (busca2.equals(matricula [f])) {
  51. matricula [f] = null;
  52. modelo [f] = null;
  53. color [f] = null;
  54. marca [f] = null;
  55. cantPuertas [f] = null;
  56. }
  57.  
  58. }
  59. for (int f= 0; f<matricula.length; f++) {
  60. System.out.println("Matricula: "+matricula[f]+" Marca: "+marca[f]+" Modelo: "+modelo[f]+" Color: "+color[f]+" Cantidad de puertas: "+cantPuertas[f]);
  61. }
  62.  
  63.  
  64. break;
  65.  
  66. case 4:
  67. System.out.println("Listado de vehiculos:");
  68. System.out.println("-----------------------------");
  69. for (int f= 0; f<matricula.length; f++) {
  70. System.out.println("Matricula: "+matricula[f]+" Marca: "+marca[f]+" Modelo: "+modelo[f]+" Color: "+color[f]+" Cantidad de puertas: "+cantPuertas[f]);
  71. System.out.println(" ");
  72. System.out.println(" ");
  73. }
  74. break;
  75.  
  76. case 5:
  77. System.out.println("Matricula del vehiculo que desea buscar: ");
  78. busca = dato.next();
  79. for (int x = 0; x<matricula.length; x++) {
  80. if (busca.equals(matricula [x])) {
  81. System.out.println("Matricula: "+matricula[x]+" Modelo: "+modelo[x]+" Color: "+color[x]+" Cantidad de puertas: "+cantPuertas[x]);
  82. System.out.println("El vehiculo se encuentra en la posicion "+(x+1));
  83. }
  84. }
  85. break;
  86.  
  87. case 0:
  88. MenuPrincipal();
  89. }
  90.  
  91. }while (op1 != 0);
  92.  

Cuando quiero usar el case 3 , me vuelve a lanzar el menu principal, las demas opciones funcionan bien, solo esa me da error
PD: No dar importancia a el case 2 (Aunque si quieren darme una idea de como hacer para modificar un array seria de gran ayuda :D) [/code]


« Última modificación: 6 Octubre 2018, 01:11 am por MrSimpatia » En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Problema con switch
« Respuesta #1 en: 5 Octubre 2018, 21:39 pm »

Cambia el break del case 3: por un prinrf que ponga algo en pantalla y mira a ver si se imprime.
Si se imprime el case 3 se está ejecutando y el problema probablemente esté en el for o el if.

Ve sustituyendo código, hasta encontrar la raíz del problema.

Si no se imprime puede que el break del case 2: se esté ejecutando al principio del case 3:
Elimina el case 2: y su break; A ver si funciona.

No se me ocurre nada más a simple vista.


En línea

I like to test things.
MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Problema con switch
« Respuesta #2 en: 5 Octubre 2018, 21:44 pm »

Borre el case 2 y sigue dando el error, pero se imprime el segundo for, osea el primero no se ejecuta, pero el segundo si, se lista los datos que pido, pero no se borran
« Última modificación: 5 Octubre 2018, 22:13 pm por perepillo » En línea

OmarHack


Desconectado Desconectado

Mensajes: 1.268


Ver Perfil
Re: Problema con switch
« Respuesta #3 en: 5 Octubre 2018, 23:13 pm »

Debe ser que el condicional del if no se cumple.
En línea

I like to test things.
3n31ch


Desconectado Desconectado

Mensajes: 445


Grandes conocimientos engendran grandes dudas


Ver Perfil
Re: Problema con switch
« Respuesta #4 en: 5 Octubre 2018, 23:33 pm »

Que coincidencia, justo te respondí otro mensaje previniendote de esto bug. Te explico que pasa:
Scanner tiene un "bug" que ocurre cuando solicitas un número y luego un String. Esto ocurre por un problema con el buffer, que detecta el "enter" como un carácter.

Puedes solucionar tu error poniendo un: dato.nextLine();, justo antes de tu busca2 = dato.nextLine();


Algo así:
Código
  1. case 3:
  2. System.out.println("Cual desea eliminar? ");
  3.                                        dato.nextLine();
  4. busca2 = dato.nextLine();
  5.  


PD: No te daré una idea de como hacer el case 2, creo que puedes hacerlo. Suerte!
« Última modificación: 6 Octubre 2018, 01:45 am por 3n31ch » En línea

MrSimpatia

Desconectado Desconectado

Mensajes: 15


Ver Perfil
Re: Problema con switch
« Respuesta #5 en: 6 Octubre 2018, 01:11 am »

No tenes una idea de el amor que te tengo 3n31ch! Mil gracias, y bueno me rompere un rato la cabeza para ver como hacer lo otro jajaj
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Switch
Programación C/C++
higor24 2 3,495 Último mensaje 19 Noviembre 2010, 16:41 pm
por Fer995
Problema con el Switch en C « 1 2 »
Programación C/C++
Samnov 13 11,302 Último mensaje 6 Diciembre 2010, 15:05 pm
por winroot
Switch Emulator: el falso emulador de Nintendo Switch es un timo
Noticias
wolfbcn 0 1,629 Último mensaje 14 Marzo 2017, 21:36 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines