Я запрограммировал метод следующим образом:
if (something) {
return 1;
}
the rest of the code
Мне кажется, что метод возвращает 1, а затем выполняет остальной код
. Может ли это быть правдой? Не останавливает ли return
выполнение кода. Это не так, как я могу заставить метод остановиться?
ADDED
Вот код (как и было запрошено):
for (int i=availableTime; i>0; i=i-1) {
final int sec = i;
SwingUtilities.invokeLater(new Runnable() {
public void run() {
String lbl = "<html>";
lbl += "</html>";
timeLeftLabel.setText(lbl);
}
});
try {Thread.sleep(1000);} catch (InterruptedException e) {}
parameterFromClientsListener = clientsListener.getValue(userName,parameterToGet);
if (!parameterFromClientsListener.equals("null")) {
output = parameterFromClientsListener;
game.log.fine(userName + " set (by button) " + parameterToGet + " to be equal to " + output + " . [IMPORTANT]");
return output;
}
}
game.log.fine("The partner selection phase is expired.");
// This code is executed if the Submit button was not pressed and the time run out.
if (parameterToGet.equals("partner")) {
tellMyChoice(parameterToGet, this.partnerFromForm, "timer of" + field);
output = this.partnerFromForm;
}
game.log.fine(parameterToGet + " was submitted by timer (not by OK button).");
} else {
output = parameterFromClientsListener;
}
game.log.fine(userName + " set (by timer)" + parameterToGet + " to be equal to " + output + " . [IMPORTANT]");
return output;
}
Я запускаю этот код два раза. В каждом случае я генерирую лог-файл. В обоих лог-файлах я вижу оператор "set (by button)" (что прямо перед return
). Но проблема в том, что во втором лог-файле я вижу оператор "таймер". Который не должен быть достигнут, если достигнут оператор "set (by button)". Как это может быть? Надо отметить, что "set (by button)" и "timer of" больше нигде в моем коде не встречаются (встречаются только один раз).
ADDED 3
Как видно из кода, у меня нет утверждения наконец-то
.