Reinicializando el scanner se resuelve:
//No se ha introducido un entero
lector = new Scanner(System.in);
System.out.print("El valor introducido no es un entero");
choces
Hola choces,
Perfecto funciona.
Muchisimas gracias choces.
joserodriguezan
Hola a todos,
Para un ejercicio me han pedido que añada un bucle para hacer tres repeciones.
Donde haga una pregunta sobre un precio.
Si el precio es superior a 100 €, que descuente el 10%
Si el precio es un numero negativo que avise que es negativo
Y si no es entero que avise que no es valido.
Sin embargo funciona con todo menos cuando no es entero, el bucle se realiza pero no pregunta.
Aqui os paso el codigo a ver si alguien me puede hechar una mano.
public class Exer3 {
//Constante de descuento del 8%
public static final float DESCUENTO = 8;
//Constante de descuento del 10% sólo en productos de 100€ o más
public static final float COMPRA_MIN = 100;
//Constante del desuento máximo en euros
public static final float DESC_MAX = 10;
//public static final int INTENTOS = 3;
public static void main(String[] args){
Scanner lector = new Scanner(System.in);
for (int i=3;i>0;i--){
System.out.print("Cual es el precio del producto en Euros : ");
boolean tipoCorrecto = lector.hasNextFloat();
//Si la entrada de datos es correcta.
if (!tipoCorrecto) {
//No se ha introducido un entero
System.out.print("El valor introducido no es un entero");
}else{
float precio = lector.nextFloat();
lector.nextLine();
if(precio>0){
if(precio>=COMPRA_MIN){
float desHecho = precio * DESCUENTO / 100;
if(desHecho > DESC_MAX){
desHecho=DESC_MAX;
}
precio=precio-desHecho;
System.out.println("Descuento realizado " + desHecho + " Euros");
}
System.out.println("El precio final por pagar es de " + precio + " Euros");
}else if (precio<0){
System.out.println("El precio es incorrecto, es negativo");
}
}
}
//Imprime la fecha actual al final.
System.out.println(new SimpleDateFormat("\ndd 'de' MMMM 'de' yyyy").format(new Date()));
System.out.println("Jose Luis Rodriguez Andradez");
}}
ESTE ES EL RESULTADO EN ECLIPSE
Cual es el precio del producto en Euros : a
El valor introducido no es un enteroCual es el precio del producto en Euros : El valor introducido no es un enteroCual es el precio del producto en Euros : El valor introducido no es un entero
27 de octubre de 2013
Jose Luis Rodriguez Andradez
CUANDO DEBERIA SER:
Cual es el precio del producto en Euros : a
El valor introducido no es un entero
Cual es el precio del producto en Euros : (Aqui para para preguntar)
Muchas gracias de antemano.