我有一個嵌套在do-while
循環內的for
循環,它將讀取文本文件並查找給定的輸入。我注意到,如果給出文件中存在的輸入,它可以很好地工作,但是有人可以幫助我理解,如果給出文本文件中不存在的輸入,程序就不會退出循環,即使它應該當文件中的文本變量變爲null
時退出。我已經發布了執行for循環的所有相關代碼,包括獲得用戶輸入的部分;只是要清楚,compiling
或運行該程序時沒有錯誤。爲什麼這個`do-while/for循環`永遠不會結束,如果你給一個無效的輸入?
FileReader fileReader = new FileReader("VirtualATM.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
System.out.print("Enter your pin: ");
char [] EnterPin = {0, 0, 0 ,0};
try{
EnterPin = System.console().readPassword();
}catch(InputMismatchException e){
e.printStackTrace();
System.out.println(e.getMessage());
//System.out.println(e.getLocalizedMessage());
}
boolean pinTrue = false;
String LineFromFile = null;
LineFromFile = bufferedReader.readLine();
String [] PinSearch = LineFromFile.split("\\s+");
String UserPin = java.util.Arrays.toString(EnterPin);
String PinMod = UserPin.replaceAll("\\[", "");
String PinMod2 = PinMod.replaceAll("\\,", "");
String PinMod3 = PinMod2.replaceAll("\\s+", "");
String PinToWrite = PinMod3.replaceAll("\\]", "");
do{
for(int search = 0; search < PinSearch.length; search++){
String SearchForPin = PinSearch[search];
if(SearchForPin.matches(PinToWrite)){
pinTrue = true;
System.out.println("Success!");
}
else if(search => PinSearch.length){
System.out.println("Error! Invalid pin.");
}
}
LineFromFile = bufferedReader.readLine();
}while(pinTrue == false && line != null);
}catch(IOException e){
e.printStackTrace();
System.out.println(e.getLocalizedMessage());
}
您正在使用哪個版本的java? Was =>意思是> =? – 2014-09-30 14:06:21