Выход из бесконечного цикла по нажатию. java
Есть простой бесконечный цикл.
Работает без привязки к каким-либо объектам. (awt swing etc.)
Нужно просто выйти, если была нажата любая клавиша.
while (true) {
System.out.println("Внутри цикла");
// куча всяких операторов
// if (была ли нажата клавиша?) break;
// если нет, продолжает работать дальше, не ждет нажатия.
}
Нет никаких готовых простых решений, без сторонних нативных библиотек и подключения других классов?
Ответы (1 шт):
Автор решения: World 006
→ Ссылка
import java.util.Scanner;
public class Main {
static boolean check = true;
static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
new Thread(() -> {
int i = 0;
while (check) {
System.out.print("Внутри цикла "+i+"\r");
i++;
try {
Thread.sleep(300);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}).start();
new Thread(() -> {
if(scanner.hasNext()){
check = false;
}
}).start();
}
}
есть 2 потока, один выводит в консоль текст пока check = true, другой - ожидает строку, и когда второй поток видет сообщение он делает check = false из-за чего перестаёт работать while