Теперь я использую java для создания программы Timer. Но проблема в том ... Я хочу добавить опцию паузы в свою программу, но не могу найти Как добавить опцию паузы ... Итак, дайте мне несколько советов о том, как вставить опцию паузы ..

import java.util.Scanner;
public class HelloWorld {
    public static void main(String[] args) throws InterruptedException {
        Scanner sc = new Scanner(System.in);
        System.out.println("Please enter Minutes : ");
        int min = sc.nextInt();
        long sec = min * 60;
        for(long i = sec; i >= 0; i--) {
            if(i % 30 == 0) {
                System.out.println(i/60 + " min" + i%60 + " sec");
            }
            Thread.sleep(1000);
        }
        System.out.println("Timer is over..");
    }
}
0
Nate Yeum 18 Апр 2020 в 18:02

1 ответ

Лучший ответ

Я предполагаю, что вы хотите дать пользователю возможность ввести что-то и остановить обратный отсчет. Проблема (я думаю) в том, что если вы запросите ввод, это заблокирует текущий поток выполнения, поэтому ваш таймер зависнет.

Чтобы решить эту проблему, вам потребуется некоторая форма асинхронного выполнения. Возможно, вы захотите взглянуть на Таймер : вы можете использовать это, чтобы запланировать обратный вызов, который будет происходить каждую секунду. Эта функция обратного вызова может напечатать следующее число в последовательности обратного отсчета, в то время как ваш основной поток ожидает ввода пользователя и отменяет таймер, если пользователь вводит pause.

1
meagar 19 Апр 2020 в 12:02