为简单起见,我希望在终端中使用循环逻辑,在检查用户输入的同时不断处理信息,而无需等待用户输入。
伪:
loop
If user input
See what they've entered
Do logic loop
注意:我已经尝试使用带有 System.in 的扫描仪并尝试查看下一行是否为空。不幸的是,该实现仍然会导致应用程序暂停。
最佳答案
基于 camickr 的评论和以下 post ,你可以使用下面的算法:
public class ScannerRunner implements Runnable {
private Scanner sc;
private ScannerRunner() {/* no instantiation without parameters*/}
public ScannerRunner(Scanner sc) {
this.sc = sc;
}
@Override
public void run() {
System.out.println("Enter The Correct Number ! ");
int question = sc.nextInt();
while (question!=1){
System.out.println("please try again ! ");
question = sc.nextInt();
}
System.out.println("Success");
}
}
然后,在您的主线程中创建一个扫描器,然后使用上述 Runner 生成一个线程(使用您提供的扫描器构建),并让您的主线程监听扫描器上的输入。 Scanner API应该能帮到你。
关于将在不暂停的情况下循环监听用户输入的 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49709070/