第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 30 秒循環(huán)中每 5 秒打印一次當前日期

在 30 秒循環(huán)中每 5 秒打印一次當前日期

ITMISS 2022-06-15 09:35:22
do while 循環(huán)將執(zhí)行 30 秒的持續(xù)時間。因為我必須每 5 秒打印一次當前日期......為此,我編寫了如下代碼。但它沒有按預期工作......public static void main(String[] args) {    long startTime = System.currentTimeMillis();        long duration = (30 * 1000);    do {                while (true) {                      try {                System.out.println(" Date: " + new Date());                Thread.sleep(2 * 1000);            } catch (InterruptedException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }    } while ((System.currentTimeMillis() - startTime) < duration);}
查看完整描述

3 回答

?
浮云間

TA貢獻1829條經驗 獲得超4個贊

我會用一個java.util.Timer; 創(chuàng)建一個匿名對象TimerTask以在 5 秒內顯示Date6 次,然后顯示cancel()其本身。這可能看起來像


java.util.Timer t = new java.util.Timer();

java.util.TimerTask task = new java.util.TimerTask() {

    private int count = 0;


    @Override

    public void run() {

        if (count < 6) {

            System.out.println(new Date());

        } else {

            t.cancel();

        }

        count++;

    }

};

t.schedule(task, 0, TimeUnit.SECONDS.toMillis(5));


查看完整回答
反對 回復 2022-06-15
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

無限循環(huán)while(true)給你帶來了麻煩。


你不需要一個 do-while 循環(huán),除非它是一個特定的要求。


public static void main(String[] args) throws InterruptedException {

    long startTime = System.currentTimeMillis();

    long duration = (30 * 1000);


    while ((System.currentTimeMillis() - startTime) < duration) {

        System.out.println(" Date: " + new Date());

        Thread.sleep(5000);

    }

}

對于 do-while 循環(huán),您可以重構如下:


public static void main(String[] args) throws InterruptedException {

    long startTime = System.currentTimeMillis();

    long duration = (30 * 1000);


    do {

        System.out.println(" Date: " + new Date());

        Thread.sleep(5000);

    } while ((System.currentTimeMillis() - startTime) < duration);

}


查看完整回答
反對 回復 2022-06-15
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

其他答案演示了使用while循環(huán)和Timer; 這是您可以使用的方法ScheduledExecutorService:


private final static int PERIOD = 5;

private final static int TOTAL = 30;


...


ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();

executor.scheduleAtFixedRate(() -> {

    System.out.println(new LocalDate());

}, PERIOD, PERIOD, TimeUnit.SECONDS);

executor.schedule(executor::shutdownNow, TOTAL, TimeUnit.SECONDS);


查看完整回答
反對 回復 2022-06-15
  • 3 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號