当前位置: 首页 > 知识库问答 >
问题:

一种Java应用程序,它将在循环中监听用户输入而不暂停

子车征
2023-03-14

为了简单起见,我希望在终端中有一个循环逻辑,它将在检查用户输入的同时不断处理信息,而不需要等待用户输入。

loop 
    If user input
        See what they've entered
    Do logic loop

共有1个答案

麹高义
2023-03-14

基于camickr的一条评论和下面的帖子,您可以使用以下算法:

     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");
        }
     }

然后,在主线程中创建一个扫描器,然后使用上面的运行程序(使用您提供的扫描器构建)生成一个线程,并让主线程监听扫描器上的输入。扫描器API会帮助您解决问题。

 类似资料:
  • 我的代码不会跳出while循环,而是仍然要求用户输入。当我按enter时,它不会再次打印“::”,但从不执行que.view()

  • 需要一些专家的建议。首先,这里是我的代码: 我的问题是:当我输入一个用户号码如“3”时,提示我的代码只打印一个__当我希望它打印指定的号码。我无论如何也想不出来。 我是英语专业的,所以这不是我的强项:(形状应该是菱形的。)

  • 我正在编写一个python游戏,它有以下功能可以向用户询问。 最多可以有4名玩家(最少1名玩家,最多4名玩家) 它会问玩家的名字。如果名称已存在,程序将提示“名称已在列表中”,并要求再次输入名称 如果播放器在播放器名称输入中输入空字符串,它将退出。 它会询问玩家想要玩多少n个随机数字(使用randint(开始,停止)。最多只允许3位数字 我知道我必须使用

  • 我试图通过使用Kryonet进行通信来创建一个基本的IRC。我遇到的问题是,在我的代码中,我不能安全地使用允许用户键入和发送消息的main while循环,因为Scanner给出了一个错误,并且似乎跳过了对nextLine()的调用。我想做的是让扫描仪在继续之前等待用户输入。 更准确地说,程序将首先在行的开头放一个“:”,然后在用户按enter键后获取用户键入的任何内容,然后将其发送到服务器。我得

  • 我试图创建一个简短的基于文本的冒险游戏使用Java。 我是一个初学的程序员,所以我的方法可能不是最有效的,但我只使用了我从学校课程中学到的东西。 为什么会出现这个问题?我不知道我做错了什么。 谢了!

  • 我试图在PlayerOne类中放入一个while循环,这样就可以通过用户输入来选择玩家的职业。我不知道怎么让它起作用。你能给我一个建议或提示吗?谢谢!(我想你不需要玩家类或者主类,所以我就让他们置身事外)