我在程序中有一個while循環,只有當某個條件成立時纔會執行某些操作,但在此之前它不會執行任何操作。每次運行循環時,我都會在控制檯上打印「運行」一詞,但這不再必要。當我刪除system.out.println時,循環立即關閉並停止工作。爲什麼會發生?Java while循環只適用於打印
int INFINITE = 1;
try {
S3Object object = s3.getObject(new GetObjectRequest("saucyMMO", "logins.txt"));
while (INFINITE == 1) {
System.out.println();
if (tryToLogin == true) {
INFINITE = 0;
BufferedReader br = new BufferedReader(
new InputStreamReader(object.getObjectContent()));
String lineValue = null;
while((lineValue = br.readLine()) != null && loggedInAs == null) {
String splitResult[] = lineValue.split(",");
boolean retVal = splitResult[0].equals(ui.usernameLogin.getText());
boolean retVal2 = splitResult[1].equals(ui.passwordLogin.getText());
if (retVal == true && retVal2 == true) {
loggedInAs = splitResult[0];
System.out.println("logged in as : " + loggedInAs);
} else if (retVal && !retVal2){
System.out.println("User exists, but password is incorrect");
} else {
}
}
}
}
} catch (AmazonServiceException ase) {
} catch (AmazonClientException ace) {
} catch (IOException e) {
e.printStackTrace();
}
我在異常處理AmazonServiceException和AmazonClientException添加,但我收到任何錯誤使用或不使用的System.out.println。
你怎麼知道它存在循環? – w4etwetewtwet
您正在捕獲catch塊中的異常。這是一個**可怕的**想法。 – jahroy
......特別是如果你的程序不符合你的期望。 –