繁体   English   中英

如何在一定时间后结束 do while 循环?

[英]How to end a do while loop after a certain amount of time?

我写了一个简单的脚本给 output 一个 KeyPress 消息; 它以 do-while 循环重复,但从不终止。 我想在 15 秒后终止它,但我尝试过的命令都没有奏效。 目前,它所做的只是以无限的“生日快乐”声誉锁定执行设备,增加内存使用量直到它崩溃。 脚本如下;

import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.KeyEvent;
public class robot {

private static boolean yes;

public static void main(String[] args) throws AWTException, InterruptedException {
    yes=(true);
    // TODO Auto-generated method stub

    do {
    Robot r = new Robot();
    r.keyPress(KeyEvent.VK_H);
    r.keyRelease(KeyEvent.VK_H);
    r.keyPress(KeyEvent.VK_A);
    r.keyRelease(KeyEvent.VK_A);
    r.keyPress(KeyEvent.VK_P);
    r.keyRelease(KeyEvent.VK_P);
    r.keyPress(KeyEvent.VK_P);
    r.keyRelease(KeyEvent.VK_P);
    r.keyPress(KeyEvent.VK_Y);
    r.keyRelease(KeyEvent.VK_Y);
    r.keyPress(KeyEvent.VK_SPACE);
    r.keyRelease(KeyEvent.VK_SPACE);
    r.keyPress(KeyEvent.VK_B);
    r.keyRelease(KeyEvent.VK_B);
    r.keyPress(KeyEvent.VK_I);
    r.keyRelease(KeyEvent.VK_I);
    r.keyPress(KeyEvent.VK_R);
    r.keyRelease(KeyEvent.VK_R);
    r.keyPress(KeyEvent.VK_T);
    r.keyRelease(KeyEvent.VK_T);
    r.keyPress(KeyEvent.VK_H);
    r.keyRelease(KeyEvent.VK_H);
    r.keyPress(KeyEvent.VK_D);
    r.keyRelease(KeyEvent.VK_D);
    r.keyPress(KeyEvent.VK_A);
    r.keyRelease(KeyEvent.VK_A);
    r.keyPress(KeyEvent.VK_Y);
    r.keyRelease(KeyEvent.VK_Y);
} while (yes==true);
    new java.util.Timer().schedule( 
            new java.util.TimerTask() {
                @Override
                public void run() {
                    yes=false;
                }
            }, 
            5000 
    );
}}

对更好的循环或如何在设定时间后终止的建议表示赞赏。

这是另一种方法,使用 LocalTime

LocalTime now = LocalTime.now();
LocalTime later = now.plusSeconds(5);

int count = 0;
while (now.isBefore(later)){
    System.out.println(count++);
    Thread.sleep(1000);
    now = LocalTime.now();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM