Java 如何退出Scanner类以执行循环的其余部分?

Java 如何退出Scanner类以执行循环的其余部分?,java,java.util.scanner,rfid,Java,Java.util.scanner,Rfid,我正在访问一个扫描仪,它可以帮助从RFID阅读器中检索RFID标签。我试着在我的扫描仪上使用一个循环但那没什么用。我认为,一旦我的扫描仪访问RFID阅读器的方法,它就会永久地留在那里。有没有办法退出RFID的方法,然后执行循环的其余部分 //The beginning of the loop while (!doneYet) { //Just a set boolean variable that I try to use later Inter = false

我正在访问一个扫描仪,它可以帮助从RFID阅读器中检索RFID标签。我试着在我的
扫描仪上使用一个循环但那没什么用。我认为,一旦我的扫描仪访问RFID阅读器的方法,它就会永久地留在那里。有没有办法退出RFID的方法,然后执行循环的其余部分

//The beginning of the loop
while (!doneYet) { 
        //Just a set boolean variable that I try to use later
        Inter = false;
      //A question class that I created, obtains and displays a random question
        Test = Work.randomQuestion();
        Test.display();

      //This is where my problems seem to start, this is the RFID Readers Method.
        rfid.addTagGainListener(new TagGainListener() {
            public void tagGained(TagGainEvent oe) {
                Temp = oe.getValue();
                if (Test.getRFIDTag().equals(Temp)) {
                    System.out.println("You are Correct");
                    count++;
                    System.out.println(count);
                    Inter = true;
                    System.out.println("out");
                    /*
                     * try { System.in.close(); } catch (IOException e) {
                     * TODO Auto-generated catch block e.printStackTrace();
                     * }
                     */
                } else if (!Test.getRFIDTag().equals(Temp)) {
                    System.out.println("Sorry, you are wrong");
                }
                return;
            }
        });

        // Before the RFID Opens though, this code is initiated
        rfid.openAny();
        rfid.waitForAttachment(1000);
        sc = new Scanner(System.in);

         //This is where I attempted to control the RFID Reader, but this doesn't work
        if(!Inter){
            sc.next();
        }

         //How I attempt to end the initial while loop
        if(count>10){
            doneYet = true;
        }
    }

提前感谢您的帮助。

您的扫描仪实际上没有任何功能
sc.next();但它只是丢弃该字符串,而从不(例如)将其传递给
rfid
。就我所见,没有任何东西会触发rfid的标签列表。(为什么每次通过循环都要添加一个新的
TagGainListener
?您肯定只需要一个侦听器吗?

我真的很惊讶这段代码能够编译。您的
计数
应强制为
最终
,在这种情况下,不允许使用
++