Duda Urgente

luthor
08 de Marzo del 2006
Esta es mi situacion: Tengo hecha una calculadora en la que para elegir la opcion a realizar debes elegirla entre un numero del 1 al 6. Como puedo acer para que si metes una letra al elegir la opcion no de error? A sabiendas que no podemos tocar el throws IOException. Ya que es un trabajo para clase. Me es muy URGENTE. Gracias

Diego
08 de Marzo del 2006
Si sólo tienes que leer un carácter, puedes hacerlo directamente con System.in (aunque es un InputStream y es más recomendable un Reader):

int valor;
do{
valor=System.in.read();
}while(valor>='1'&&valor<='6');
valor=Character.digit(valor,10);

Este código lee un carácter como entero, comprueba que esté entre el 1 y el 6 y después en el entero asigna el valor numérico verdadero introducido, no el caracter Unicode contenido. Espero que te sirva.

Diego
08 de Marzo del 2006
Hay un error claro en el código, donde pone:
while(valor>='1'&&valor<='6');
debería poner:
while(valor<'1'||valor>'6');