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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Necesito ayuda con un menu en java (switch)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Necesito ayuda con un menu en java (switch)  (Leído 4,061 veces)
Mike_Mike_2000

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Necesito ayuda con un menu en java (switch)
« en: 24 Septiembre 2014, 02:15 am »

Hola, soy nuevo
Tengo pequeño problema con un menu en el que estoy trabajando
en mi menu hay 11 opciones y el usuario debe introducir el NOMBRE de la opción que desea pero me marca un error al comparar los datos.
Los errores los marca en:
case 'DIVISION' :
case 'ORDEN':
etc...

Citar
import java.util.Scanner;
public class Menu {
   static Scanner sc= new Scanner (System.in);
public static void main(String[] args) {
   char M;
   System.out.println("*Menu*");
   System.out.println("");
   System.out.println("1.-DIVISION");
   System.out.println("2.-ORDEN");
   System.out.println("3.-SERIES PAR_IMPAR");
   System.out.println("4.-SERIE PRIMO");
   System.out.println("5.-TRIANGULOS");
   System.out.println("6.-DNI");
   System.out.println("7.-LONGITUDES");
   System.out.println("8.-CUADRADOS PERFECTOS");
   System.out.println("9.-NUMERO TRIANGULAR");
   System.out.println("10.-CARACOL");
   System.out.println("11.-RECTANGULOS" \n);
   System.out.println("A continuación introduzca el nombre del programa que desea elegir");
   System.out.println("**IMPORTANTE** El nombre del programa que desea elegir debe estar en mayusculas y escrito correctamente");
   
   switch(M){
   case 'DIVISION' :
      break;
   case 'ORDEN':
      break;
   case 'SERIES PAR_IMPAR':
      break;
   case 'SERIE PRIMO':
       break;
   case 'TRIANGULOS':
      break;
   case 'DNI':
      break;
   case 'LONGITUDES':
      break;
   case 'CUADRADOS PERFECTOS':
      break;
   case 'NUMERO TRIANGULAR':
      break;
   case 'CARACOL':
      break;
   case 'RECTANGULOS':
      break;
      default:
         System.out.println("ERROR");
         System.out.println("Debe introducir correctamente el nombre del programa que desea en mayusculas ");
   }
}
}


En línea

Baal_30

Desconectado Desconectado

Mensajes: 248



Ver Perfil
Re: Necesito ayuda con un menu en java (switch)
« Respuesta #1 en: 24 Septiembre 2014, 09:26 am »

mmmm creo que el problema está en la expresión del switch(M), porque M es un char, pero lo que tú le estás pidiendo que introduzca al usuario es un String, además que no escaneas en ningún sitio lo que tiene que escribir el usuario.

Prueba declarando un string, y luego metiendole un valor introducido por teclado (La elección que se quiera del menu) y luego lo pones en el swith.

Lo declaras como : string nombreString;
Luego despues del último System.out.println pones escaneas la opción de desean elegir así : nombreString = scan.nextLine(); (habiendo importado el escaner antes y todo eso)
Y ya en el switch pones: switch(nombreString){...}


Pruebalo y me dices si te ha solucionado el problema, creo que será así... Si estoy equivocado que me corrija alguien :)

Un saludo.


« Última modificación: 24 Septiembre 2014, 09:31 am por Baal_30 » En línea

«La suerte es el cuidado de los detalles». -Winston Churchill
Ayram7

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Necesito ayuda con un menu en java (switch)
« Respuesta #2 en: 24 Septiembre 2014, 09:58 am »

Coincido con Baal_30
Pides que escriban toda la opción (para lo que deberías hacer switch a un String en lugar de un char).

Te sugiero dos cosas:

La primera. Haz switch a los números (int)
Es más rápido para el usuario y no tienes que teclear tanto.

Segundo.

En lugar de usar tantos System.out.println podrías colocar todo eso en uno solo usando el salto de linea \n

Quedaría así:

Código
  1. System.out.println("*Menu*\n\n1.-DIVISION\n2.-ORDEN\n3.-SERIES PAR_IMPAR\n4.-SERIE PRIMO");

Te ahorras mucho código.
En línea

milx86

Desconectado Desconectado

Mensajes: 42


Ver Perfil
Re: Necesito ayuda con un menu en java (switch)
« Respuesta #3 en: 25 Septiembre 2014, 07:10 am »

Aqui te dejo un code que siempre uso,
Código
  1. import java.util.Scanner;
  2.  
  3. public class testPila {
  4.  
  5.    public static void main(String[] args) {
  6.  
  7.        Scanner entrada = new Scanner(System.in);
  8.        Pila miStack = new Pila();
  9.  
  10.        int op,nro;
  11.        do{
  12.            System.out.println("\t***************************************");
  13.            System.out.println("\t             Pila dinamica             ");
  14.            System.out.println("\t***************************************");
  15.            System.out.println("\t 1. Apilar elemento                    ");
  16.            System.out.println("\t 2. Desapilar elemento                 ");
  17.            System.out.println("\t 3. Mostrar Pila                       ");
  18.            System.out.println("\t 4. Vaciar Pila                        ");
  19.            System.out.println("\t 5. Salir                              ");
  20.            System.out.println("\t***************************************");
  21.            System.out.print("\tIngrese una opcion: ");
  22.            op = entrada.nextInt();
  23.  
  24.            switch(op){
  25.                case 1: System.out.print("\tApilar nro: ");
  26.                        nro = entrada.nextInt();
  27.                        miStack.insertar(nro);
  28.                        break;
  29.                case 2: miStack.quitar();
  30.                        break;
  31.                case 3: System.out.println("\tPila tam: "+miStack.getTam());
  32.                        miStack.mostrarPila();
  33.                        break;
  34.                case 4: miStack.limpiarPila();
  35.                        System.out.println("\tPila vacia: "+miStack.pilaVacia());
  36.                        break;
  37.                case 5: System.out.println("\tGood bye!");
  38.                        break;
  39.                default:
  40.                    System.out.println("\t[msgError]: Opcion no valida.");
  41.            }
  42.  
  43.        }while(op!=5);  
  44.    }
  45. }
  46.  
Sería cuestion de cambiar el codigo en los case y modificar las opciones en los println.
Saludos  :)
En línea

La abstracción es la clave para lidiar con la complejidad.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[MOD] NECESITO AYUDA con menu de DVD
Multimedia
mary79 1 1,616 Último mensaje 11 Febrero 2006, 20:23 pm
por Sourraund
ayuda en un menu en switch « 1 2 3 »
Programación C/C++
poisonkhriz 27 22,849 Último mensaje 20 Marzo 2011, 19:40 pm
por Akai
[SRC] Menú básico usando switch
Java
madpitbull_99 2 4,437 Último mensaje 15 Octubre 2011, 12:55 pm
por тαптяα
Menú mediante lenguaje C ¨Necesito ayuda.
Programación C/C++
OreOBooM 1 1,936 Último mensaje 6 Noviembre 2013, 04:09 am
por Vaagish
Boton como switch en java. actionPerformed no FUNKA
Java
rub'n 2 2,537 Último mensaje 27 Septiembre 2015, 17:55 pm
por rub'n
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines