Java 如何退出Scanner类以执行循环的其余部分?
我正在访问一个扫描仪,它可以帮助从RFID阅读器中检索RFID标签。我试着在我的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的方法,然后执行循环的其余部分
//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
?您肯定只需要一个侦听器吗?我真的很惊讶这段代码能够编译。您的计数
应强制为最终
,在这种情况下,不允许使用++
。