Java - Ayuda Java

 
Vista:

Ayuda Java

Publicado por Laureano (2 intervenciones) el 13/11/2012 07:00:25
Necesito saber que es este error exception.. el programa compila y mientras se ejecuta aparece esto.. espero puedan ayudarme

Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at EjercicioEmpresa.Empresa.main(Empresa.java:24)
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

Ayuda Java

Publicado por José Manuel (22 intervenciones) el 14/11/2012 10:15:49
Hola, imagino que estás usando un "Scanner" y el error que te da es porque está recibiendo un valor como entrada, que tiene un tipo distinto del que el Scanner espera recibir o bien se encuentra fuera del rango permitido para el tipo de dato esperado.

Espero que te sirva. Saludos,

José Manuel.
==========================
http://www.orbisapientia.com
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

Ayuda Java

Publicado por Laureano (2 intervenciones) el 14/11/2012 23:03:11
Hola, si estoy usando " Scanner " .. imagino que el problema debe ser que se encuentra fuera del rango permitido ya que el valor que recibe es el indicado ( ecepto q este interpretando mal el programa ) estoy trabajando con herencia en este ejercicio. Dejo el codigo que hice a continuacion y si puedes responder me seria de mucha ayuda, Desde ya muchas gracias

public class Oficinistas {

protected String nombre;
protected String apellido;
protected int legajo;
protected int codArea;
protected double sueldo=2000;

public Oficinistas (String nombrePersona, String apellidoPersona, int legajoPersona, int codigo){
nombre= nombrePersona;
apellido= apellidoPersona;
legajo= legajoPersona;
codArea= codigo;
}

public void establecerNombre(String nombrePersona){
nombre=nombrePersona;
}
public String obtenerNombre(){
return nombre;
}

public void establecerApellido(String apellidoPersona) {
apellido = apellidoPersona;
}
public String obtenerApellido(){
return apellido;
}

public void establecerLegajo(int legajoPersona){
legajo=legajoPersona;
}
public int obtenerLegajo(){
return legajo;
}

public void establecerCodArea(int codigo){
codArea=codigo;
}
public int obtenerCodArea(){
return codArea;
}

public void establecerSueldo(double plata){
sueldo=plata;
}
public double obtenerSueldo(){
return sueldo;
}

public String mostrar(){
return "nombre: " + obtenerNombre() + "\napellido: " + obtenerApellido() +
"\nlegajo: " + obtenerLegajo() + "\ncodigo area:" + obtenerCodArea() + "\nsueldo: " + obtenerSueldo() ;
}



public class Empresa {
public static void main (String [] args){
int numero=1;
Scanner s= new Scanner (System.in);

while (numero != 0){

System.out.println("elija el empleado a contratar: ");
System.out.println("1:oficinista 2:supervisor 3:gerente 4:salir");

numero = s.nextInt();

switch(numero){

case 1:
System.out.println("ingrese datos oficinista");
System.out.println("nombre - apellido - legajo - codigo de area");

Oficinistas empleadoOficinista = new Oficinistas(s.nextLine(), s.nextLine(), s.nextInt(), s.nextInt());

System.out.println(empleadoOficinista.mostrar());
break;

case 2:
System.out.println("ingrese datos supervisor");
System.out.println("nombre - apellido - legajo - codigo de area - antiguedad");

Supervisores empleadoSupervisor = new Supervisores(s.nextLine(), s.nextLine(), s.nextInt(), s.nextInt(), s.nextInt());

System.out.println(empleadoSupervisor.mostrar());
break;

case 3:
System.out.println("ingrese datos gerente");
System.out.println("nombre - apellido - legajo - codigo de area - antiguedad");

Gerentes empleadoGerente = new Gerentes(s.nextLine(), s.nextLine(), s.nextInt(), s.nextInt(), s.nextInt());

System.out.println(empleadoGerente.mostrar());
break;

case 4:
numero=0;
System.out.println("fin");
break;

}

}

}


Solo copie la clase OFINICISTAS despues hay 2 clases mas que heredan los datos de esa clase
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

Ayuda Java

Publicado por José Manuel (22 intervenciones) el 15/11/2012 09:15:42
Hola:

Pues lo primero sería identificar los lugares donde usas el Scanner. En cualquier caso, recuerda una cosa: nextInt() no consume la nueva línea creada al pulsar "enter", por lo que detrás de cada nextInt se suele poner un nextLine o algo que consuma ese salto de línea.

Mirar a ver también en qué línea se produce la excepción y prueba a ejecutar paso a paso el programa, vigilar los valores de las variables, propiedades, etc.

Saludos,
José Manuel
======================
http://www.orbisapientia.com
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