【发布时间】:2014-08-31 07:50:50
【问题描述】:
我有一个 while 循环,它应该读取数组的元素以尝试找到给定 variable 的值,但是,循环无限次执行自己,我不明白为什么。一旦找到它正在寻找的值,它就应该退出;我知道它确实找到了它正在寻找的东西,因为它会无限次打印出I've found it!。到目前为止,该方法的代码是:
try{
System.out.println("Enter your card number to access your account:");
int CardNumber = sc.nextInt();
String CardNumberStr = Integer.toString(CardNumber);
boolean Exist = false;
String LineNo;
String [] CardNum = {};
int Counter;
FileReader fileReader = new FileReader("VirtualATM.txt");
BufferedReader bufferedReader = new BufferedReader(fileReader);
line = bufferedReader.readLine();
CardNum = line.split("\\s+");
do{
for(Counter = 0; Counter < CardNum.length; Counter++){
LineNo = CardNum[Counter];
if(LineNo.contains(CardNumberStr)){
Exist = true;
System.out.println("I've found it!");
}
else if(Counter == CardNum.length){
Exist=false;
}
}
}while(Exist = false || line != null);
bufferedReader.close();
}catch(FileNotFoundException e){
e.printStackTrace();
System.out.println(e.getMessage());
}catch(IOException e){
e.printStackTrace();
System.out.println(e.getMessage());
}
谁能帮我弄清楚为什么会这样?
【问题讨论】:
-
我建议您设置 Eclipse(或您使用的任何 IDE)在 if/while 块中有布尔赋值时发出警告。
-
可能是 while (Exist == false... 而不是 Exist=false ????