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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


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

Desconectado Desconectado

Mensajes: 48


Ver Perfil
menu con errores
« en: 24 Agosto 2017, 21:40 pm »

Estimados, muchas gracias de antemano los que se interesen en ayudar o tratar de ayudarme, les axplico:

Tengo este menu para ir pidiendo por teclado los datos al usuario, el menu avanza de forma automatica, luego en el ultimo casele pregunta al usuario si es que quiere ingresar un nuevo objeto o no, en cada caso a i le asigna un valor, cuando indicaba Y le asigna 0 para que al terminar sumara 1 mas y entrara nuevamente al case 1 y pregutara nuevamente los datos, el tema es que nunca entraba al case 1 empezaba desde el case 2, trate colocandole hasa un -1 al i aun asi siempre empezaba desde el case 2, bueno modificando esto ahora entro en un loop infinito, y no sale de la pregunta
Código
  1. System.out.println("¿Desea agregar un nuevo producto?, indicar \"Y\" para si o \"N\" para no: ");
, si alguno me pudiera ayudar se los agradeceria mucho saludos
PD. tengo uno que otro system basura cuando estaba tratando de trazar donde estab el error
Código
  1. package javaproducto;
  2. import java.util.*;
  3. /**
  4.  *
  5.  * @author Crisoof
  6.  */
  7. public class Main {
  8.  
  9.    public static void main(String []arg){
  10.  
  11.        Producto Lechemala = new Producto();
  12.        Producto LecheVacia = new Producto();
  13.        Nodo<Producto> Indice = new Nodo(Lechemala);
  14.        Nodo<Producto> NodoNext = new Nodo();
  15.        ListaEnlazada<Producto> sistema = new ListaEnlazada<>();        
  16.        Scanner leer = new Scanner(System.in);
  17.        boolean flag = false ;
  18.        boolean flag_in ;
  19.        String codigo = null;
  20.        String descrip = null;
  21.        double precioUni = 0;
  22.        int stock = 0;
  23.        int stockCrit = 0;
  24.        String opcion ;
  25.  
  26.        System.out.println("Estimad@ necesitamos agregar productos al sistema,favor ingresar la "
  27.                + "informacion que se pedira a continuacion");          
  28.        for(int i = 1;i <= 7;i++){            
  29.  
  30.            switch(i){                                        
  31.                case 1:
  32.                    flag = false;
  33.                    while(!flag){
  34.                    System.out.println("Ingrese el codigo del producto (Max. 10 caracteres): ");                                
  35.                    codigo = leer.nextLine();                    
  36.                        if(codigo.length() <= 10){
  37.                            System.err.println("test codigo: "+codigo);
  38.                            flag = true;
  39.                        }else{
  40.                    System.err.println("Error. Favor ingresar Maximo 10 caracteres: ");        
  41.                            flag = false;
  42.                        }
  43.                    }                    
  44.                    break;
  45.                case 2:
  46.  
  47.                    System.out.println("Indicar descripcion del producto: ");
  48.                    descrip = leer.nextLine();
  49.  
  50.                    break;
  51.                case 3:
  52.  
  53.                    flag_in = false;
  54.                    while(!flag_in){
  55.                        try{
  56.                            System.out.println("Indicar precio unitario del producto: ");                
  57.                            precioUni = leer.nextDouble();
  58.                            flag_in = true;                                          
  59.                        }catch(InputMismatchException ex){
  60.                            System.err.println("Favor indicar solo numeros para el precio unitario del producto. ");                    
  61.                            leer.nextLine();
  62.                        }
  63.                    }
  64.                    break;
  65.                case 4:
  66.  
  67.                    flag_in = false;
  68.                while(!flag_in){
  69.                    try{
  70.                        System.out.println("Indicar el stock del producto: ");                
  71.                        stock = leer.nextInt();
  72.                        flag_in = true;
  73.  
  74.                    }catch(InputMismatchException ex){
  75.                        System.err.println("Favor indicar solo numeros enteros para el stock del producto. ");                    
  76.                        leer.nextLine();
  77.                    }
  78.                }                        
  79.                    break;
  80.                case 5:
  81.                    flag_in = false;
  82.                while(!flag_in){
  83.                    try{
  84.                        System.out.println("Indicar el stock critico del producto: ");
  85.                        stockCrit = leer.nextInt();
  86.                        flag_in = true;
  87.  
  88.                    Lechemala.setCodigo(codigo);
  89.                    Lechemala.setDescripcion(descrip);
  90.                    Lechemala.setPrecioUni(precioUni);
  91.                    Lechemala.setStock(stock);
  92.                    Lechemala.setStockCritico(stockCrit);
  93.  
  94.                    sistema.insertarPrimero(Lechemala);
  95.                    }catch(InputMismatchException e){
  96.                        System.err.println("Favor indicar solo numeros enteros para el stock critico del producto. ");                    
  97.                        leer.nextLine();
  98.                    }
  99.                }
  100.                    break;
  101.                case 6:
  102.                    flag_in = false;
  103.                    while(!flag_in){
  104.                        try{
  105.  
  106.                            System.out.println("¿Desea agregar un nuevo producto?, indicar \"Y\" para si o \"N\" para no: ");                    
  107.                                opcion = leer.next();
  108.                                if (opcion.equals("Y") || opcion.equals("y")){
  109.                                    System.out.println("entre a la opcion Y");
  110.                                    flag_in = true;
  111.                                    i = 0 ;
  112.                                    System.out.println("i tiene este valor ahora"+i);
  113.  
  114.                                }else if (opcion.equals("N") || opcion.equals("n")){
  115.                                    System.out.println("entre a la opcion N");
  116.                                    flag_in = true ;
  117.                                    i = 8;
  118.                                    System.out.println("i tiene este valor ahora"+i);
  119.  
  120.                                }else
  121.                            System.err.println("Favor ingresar solo \"Y\" para si o \"N\" para no. ");                            
  122.                                flag_in = false;                        
  123.                        }catch(InputMismatchException e){
  124.                            System.err.println("Favor indicar solo Y o N (minusculas o mayusculas). ");                    
  125.                            leer.next();
  126.                        }
  127.                    }
  128.                    break;
  129.            }  
  130.        }
  131.  
  132.            for(int i =sistema.cuantosElementos();0<sistema.cuantosElementos();i--){
  133.            System.out.println("Producto en posicion :"+i);    
  134.            System.out.println(sistema.devolverDato(i).ToString());
  135.            }
  136.    }
  137.  
  138. }


En línea

HardC0d3

Desconectado Desconectado

Mensajes: 49



Ver Perfil
Re: menu con errores
« Respuesta #1 en: 25 Agosto 2017, 01:26 am »

Observa el bloque del try de la línea 104, en él tienes el fallo:

Código
  1. try{
  2.     System.out.println("¿Desea agregar un nuevo producto?, indicar \"Y\" para si o \"N\" para no: ");                    
  3.     opcion = leer.next();
  4.     if (opcion.equals("Y") || opcion.equals("y")){
  5.         System.out.println("entre a la opcion Y");
  6.         flag_in = true;
  7.         i = 0 ;
  8.         System.out.println("i tiene este valor ahora"+i);
  9.  
  10.     }else if (opcion.equals("N") || opcion.equals("n")){
  11.         System.out.println("entre a la opcion N");
  12.         flag_in = true ;
  13.         i = 8;
  14.         System.out.println("i tiene este valor ahora"+i);
  15.  
  16.     }else
  17.         System.err.println("Favor ingresar solo \"Y\" para si o \"N\" para no. ");                            
  18.         flag_in = false;                        
  19.     }catch(InputMismatchException e){
  20.         System.err.println("Favor indicar solo Y o N (minusculas o mayusculas). ");                    
  21.         leer.next();
  22. }
  23.  
  24.  

Creo q te has dejado algo  ;)


« Última modificación: 25 Agosto 2017, 01:31 am por HardC0d3 » En línea

crisoof

Desconectado Desconectado

Mensajes: 48


Ver Perfil
Re: menu con errores
« Respuesta #2 en: 25 Agosto 2017, 20:21 pm »

Era una tontera!, gracias Hardcod3, me faltaban las llaves para el Else
saludos! ;-)
« Última modificación: 25 Agosto 2017, 20:29 pm por crisoof » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines