[ Foro de Java ]

El problema es el siguiente: Tengo un programa en Java donde al momento de utilizar el case 4 ingreso al metodo modificar y luego al entrar metodo crearBicicleta al momento de poner el anio por teclado no sigue a la siguiente linea, que puede hacer o modi

11-Jun-2023 21:08
Invitado (Ariel)
1 Respuestas



package tarealistassimples;

import java.util.Scanner;

public class Menu {

   

   public Bicicleta crearBicicleta() {
       Scanner sc = new Scanner(System.in);
       String id;
       String modelo;
       double precio;
       int anio;

       System.out.println("Ingrese los siguiente datos para crear una bicicleta");

       System.out.print("Id: ");
       id = sc.nextLine();

       System.out.print("Modelo: ");
       modelo = sc.nextLine();

       System.out.print("Precio: ");
       precio = sc.nextDouble();

       System.out.print("Anio: ");
       anio = sc.nextInt();
       sc.nextLine();

       Bicicleta bici;
       bici = new Bicicleta(id, modelo, precio, anio);

       return bici;

   }

   public void Menu() {
       MetodosNodo metLis = new MetodosNodo();
       
       Scanner scAux2 = new Scanner(System.in);
       int option;

       do {
           System.out.println("");
           System.out.println("-- Menu Bicicleta --");
           System.out.println("1. Insertar");
           System.out.println("2. Insertar Bicicletas predeterminadas");
           System.out.println("3. Eliminar");
           System.out.println("4. Modificar");
           System.out.println("5. Buscar");
           System.out.println("6. Mostrar Lista Completa");
           System.out.println("7. Salir");
           option = scAux2.nextInt();
           
           Scanner scAux3 = new Scanner(System.in);
           switch (option) {
               

               case 1:
                   Bicicleta nuevaBici = crearBicicleta();
                   metLis.insertar(nuevaBici);
                   break;

               case 2:
                   Bicicleta b1 = new Bicicleta("423543", "Benelli", 2500, 2023);
                   Bicicleta b2 = new Bicicleta("534454", "Trek", 1500, 2021);
                   Bicicleta b3 = new Bicicleta("654344", "Specialized", 7500, 2023);
                   Bicicleta b4 = new Bicicleta("212323", "Canyon", 15000, 2023);
                   Bicicleta b5 = new Bicicleta("346545", "Benelli", 10000, 2021);

                   metLis.insertar(b1);
                   metLis.insertar(b2);
                   metLis.insertar(b3);
                   metLis.insertar(b4);
                   metLis.insertar(b5);
                   break;

               case 3:

                   System.out.println("Ingrese la id de la bicicleta que quiere eliminar: ");

                   String id = scAux3.nextLine();
                   metLis.eliminar(id);
                   scAux3.nextLine();
                   break;

               case 4:
                   Scanner scAux = new Scanner(System.in);
                   System.out.println("Ingrese la id de la bicicleta que quiere modificar: ");

                   String id2 = scAux.nextLine();
                   Bicicleta biciModificada = crearBicicleta();
                   metLis.modificar(id2, biciModificada);

                   break;

               case 5:
                   System.out.println("Ingrese el modelo de la bicicleta que quiere buscar");

                   String modelo = scAux3.nextLine();
                   metLis.buscar(modelo);
                   break;

               case 6:
                   System.out.println("--- Lista completa de Bicicletas ---");
                   metLis.imprimir();
                   break;

               case 7:
                   break;

           }

       } while (option != 7);
   }

}


15-Jun-2023 23:24
Nacho Cabanes (+84)

No deberías mezclar los nextLine con nextDouble. Lee siempre con nextLine y convierte luego a número si lo necesitas.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)