如果我有这样的循环:
for(int i = 0; i <= 10; i++) {
System.out.println("Hello, User " + i;
Thread.sleep(1000)
}
我如何添加没有需要用户输入的代码,但是如果用户选择在给定点暂停循环,他们可以这样做,并在稍后恢复?
答案 0 :(得分:0)
尝试创建等待1秒的后台线程,以便用户选择暂停。如果未在1秒内选择,则向前移动。
这样写的方式,您的Thread.sleep()
会将用户界面锁定1秒钟,无论用户做了什么,它都不会影响您的计划。
答案 1 :(得分:0)
为此,您需要实现多线程。一个线程将运行循环(T1),而其他线程可以等待用户输入(T2)。
T1 - while - &gt;检查是否通过普通bool属性输入 - &gt; 继续/中断循环
T2 - 等待输入 - &gt;如果输入==“暂停” - &gt;将common属性设置为true 暂停循环
类似的东西:
class MultiThread implements Runnable {
boolean gotInput = false;
int i = 0;
public void run() {
for(;i <= 10 && !gotInput; i++) {
System.out.println("Hello, User " + i;
Thread.sleep(1000)
}
}
public static void main(String args[]) {
MultiThread mt = new MultiThread ();
Thread t = new Thread(mt);
t.start();
Scanner s = new Scanner(System.in);
while (!s.next().equals("pause"));
test.gotInput = true;
}
}
在同一行,您可以根据需要恢复代码。