Java - ¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Pelayo (3 intervenciones) el 15/02/2018 08:51:17
A ver, me explico. En la ejecución de mi bucle, lo que quiero es ofrecer al usuario la posibilidad de introducir un dato por teclado. Sin embargo, quiero que esta opción esté disponible solo durante unos cuantos segundos, y a continuación, que el bucle siga su curso.

Resumiendo, quiero que la lectura por teclado no suponga el bloqueo de la ejecución. He estado intentando hacerlo con las clases Thread, Timer, TimerTask e incluso con Calendar, pero nada, parece que no doy con la tecla.

Agradecería ayuda, que me tiene loco esto! Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
1
Responder
sin imagen de perfil
Val: 13
Ha aumentado su posición en 7 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Diego Rodrigo (6 intervenciones) el 15/02/2018 16:07:24
Hola Buen Dia, podrias usar la funcion Thread.sleep(nMiliSegundos);
_en nMiliSegundos puedes introducir la cantidad de MILIsegundos que desees;

el codigo te podria quedar tal que asi:
Scanner entradaDatos = new Scanner(System.in);
String datoIngresado = entradaDatos.nextLine();
Thread.sleep(5000);
System.out.println("Han transcurrido 5s desde que se introdujo el dato");

Tambien tendras que poner al final de la clase donde estem estas lineas de codigo "throws InterruptedException"
Ej:
public static void main(String[] args)throws InterruptedException{
//Lineas de codigo
}

Espero que te haya servido mi aporte,Diego.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Pelayo (3 intervenciones) el 15/02/2018 23:25:43
Hola Diego, gracias por responder!

Mira, el tema de usar Thread.sleep en este caso no me vale porque lo que quiero es que el programa haga una cosa u otra en función de si el usuario introduce O NO un dato.

Es decir: si no introduce nada, que vaya por un camino; si sí, por otro. El problema es que por mucho que use Thread.sleep, la entrada de datos bloquea el bucle y se queda estancado. Quiero escribir el código de modo que, pasados 10 segundos, por ejemplo, si no se ha introducido un dato, que continúe con la ejecución del bucle. Si por el contrario, se pulsa una tecla (la que sea), que siga otras instrucciones. Con Timer y TimerTask he podido crear un temporizador, pero solo me ejecuta una pasada y sale del programa. Quiero que tenga tantas iteraciones como le indique.

Espero haberme explicado mejor.

Gracias por la ayuda Diego!
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

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Tom (1831 intervenciones) el 16/02/2018 10:33:02
Pues, obviamente, debes hacer la lectura de System.in en otro hilo, que puedas cancelar pasado el tiempo que quieras.
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
sin imagen de perfil
Val: 8
Ha aumentado su posición en 5 puestos en Java (en relación al último mes)
Gráfica de Java

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Pelayo (3 intervenciones) el 16/02/2018 13:28:50
Vale, pero en el cómo hacer eso me pierdo. Podrías ejemplificarlo con código por favor?
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

¿Cómo puedo leer por teclado dentro de un bucle sin parar la ejecución del mismo?

Publicado por Agustin (1 intervención) el 25/10/2018 02:41:31
Buenas, Tengo el mismo problema. resulta que quiero programar una "barra de poder" que sube y baja entre los valores 100 y 0
Quiero detener esa iteracion cuando el usuario ingrese una Letra.
En fin quiero parar el bucle al ingresar una Letra. ¿Pudiste resolver tu duda?
Si es así podrías ayudarme. Saludos!
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