gpt4 book ai didi

java - 创建一个不断输出输出的循环,直到用户键入一个词来停止该过程

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:22:53 25 4
gpt4 key购买 nike

我正在尝试在 java 中创建一个代码,该代码每 10 毫秒连续吐出 x 变量是什么,直到用户输入中断循环的字符串。我想知道如何编码。我现在有以下内容。该代码当前正在运行,只是在 Scanner 应该扫描下一行而不是连续打印出变量 x 的地方停止。

public static void show() {
while (true) {
if (showWatch.elapsedTime1() > 10) {
System.out.println(x);
showWatch.start();
x = x + 1;
wait(1000);
}
else if (showWatch.elapsedTime1() < 10) {
while (showWatch.elapsedTime1() < 10) {
response = scan.nextLine();
}
if (response.equalsIgnoreCase("STOP")) {
break;
}
else if (showWatch.elapsedTime1() > 10) {
System.out.println(x);
showWatch.start();
x = x + 1;
wait(1000);
}
}
}
}

如何编写一个循环,它只会持续打印变量的内容,直到用户输入一个单词来停止程序?

最佳答案

如果在打字过程中打印出某些东西,扫描仪将无法工作。但如果间隔足够大,它就可以工作。我使用信号量,以便打印机线程只要他没有票就可以 hibernate 。

public class Printer extends Thread {

public Semaphore stopped = new Semaphore(1);
private int x;

@Override
public void run() {
while (true) {
try {
stopped.acquire();
System.out.println(++x);
stopped.release();
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}

public static void main(String[] args) throws InterruptedException {
Printer printer = new Printer();
printer.start();

Scanner scan = new Scanner(System.in);
while(true) {
String command = scan.nextLine();
if ("BREAK".equals(command)) {
printer.stopped.acquire(1);
} else if ("RESTART".equals(command)) {
printer.stopped.release(1);
}
}
}

关于java - 创建一个不断输出输出的循环,直到用户键入一个词来停止该过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51070469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com