Pregunta: | 54902 - PROBLEMA CON SYSTEM.IN.SKIP() |
Autor: | Eduardo Morales |
Hola, tengo un problema con System.in.skip() y no hayo cómo resolverlo, el problema es este:
// claro que esta el throws IOException y el import de java.io.*; int dato, cont=1; System.out.println("presione 's' para salir"); System.out.print("Introduzca un dato: "); while ('s' != ( dato = System.in.read())){ System.out.print(cont+ " vez "); cont++; System.in.skip(1); // no importa qué número ponga no me respeta System.out.print(" - Introduzca nuevo dato: "); } System.out.println("Has presionado s"); A la hora de correr esta pequeña aplicación (sin uso aparente, es de prueba) ocurre que me brinca un "introduzca nuevo dato" y da esta salida: presione 's' para salir Introduzca un dato: a 1 vez - Introduzca nuevo dato: 2 vez - Introduzca nuevo dato: b 3 vez - Introduzca nuevo dato: 4 vez - Introduzca nuevo dato: si le pongo System.in.skip(2) da la misma salida: presione 's' para salir Introduzca un dato: a 1 vez - Introduzca nuevo dato: 2 vez - Introduzca nuevo dato: b 3 vez - Introduzca nuevo dato: 4 vez - Introduzca nuevo dato: s Has presionado s Process completed. Los ejemplos los copio de un libro tal cual está ¿alguién sabe a qué se debe? |
Respuesta: | Julio Cesar Prieto Velázquez |
prueba de esta manera int dato, cont=1; System.out.println("presione 's' para salir"); System.out.print("Introduzca un dato: "); dato = System.in.read(); while ('s' != ( dato)){ System.out.print(cont+ " vez "); cont++; System.in.skip(1); // no importa qué número ponga no me respeta System.out.print(" - Introduzca nuevo dato: "); dato = System.in.read(); } System.out.println("Has presionado s"); |