Hola a todos tengo que resolver este problema:
Contabiliza personas de más de 180, entre 180 y 170, entre 170 y 160,
y más bajas que 160cm.
El usuario introduce datos hasta que introduzca un caso de parada
(puede ser un 0 o -1 o cualquier cosa que quiera el programador).
Al final debe mostrarme cuantos hay de cada altura.
Yo tengo este código:
Código:
package alturas;
import java.util.Scanner;
public class Alturas {
public static void main(String[] args) {
char salir=0;
int contador1=0;// para los mayores de 1.80cm
int contador2=0;//para entre 1.80 y 1.70 cm
int contador3=0;// para entre 1.70 y 1.60 cm
int contador4=0;// para los más bajitos de 1.60 cm
float alintro=0; //altura introducida
Scanner lector;
lector = new Scanner(System.in);
do{
System.out.println("¡CONTEMOS ALTURAS ^^ !");
System.out.println("PULSE S PARA SALIR");
System.out.println("Introduzca una altura cualquiera: ");
alintro=lector.nextFloat();
lector.nextLine();
if (alintro>1.80)
{
contador1++;
}
else if (alintro<=1.80 && alintro>=1.70)
{
contador2++;
}
else if( alintro<=1.70 && alintro>=1.60)
{
contador3++;
}
else if(alintro<1.60)
{
contador4++;
}
} while(salir=='s');
System.out.print("Personas MAYORES 1.80: "+contador1);
System.out.print("Personas ENTRE 1.80 Y 1.70: "+contador2);
System.out.print("Personas ENTRE 1.70 Y 1.60: "+contador3);
System.out.print("Personas MENORES 1.60"+contador4);
}
}
el caso es que el programa usando netbeans me sale esta excepcion:
¡CONTEMOS ALTURAS ^^ !
PULSE S PARA SALIR
Introduzca una altura cualquiera:
1.60
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextFloat(Scanner.java:2388)
at alturas.Alturas.main(Alturas.java:42)
Java Result: 1
¿Cómo podría solucionar este error?, sé que el fallo está en los ifs cuando les pongo que compare con numeros float, pero como puedo hacer esto?.