Просто краткое описание того, что я делаю - у меня есть генератор случайных уравнений и кнопки со всеми цифрами. Чтобы ответить на вопрос, пользователь должен щелкнуть соответствующие кнопки, чтобы сформировать вопрос (цифры записываются слева направо), например. 9 + 6 = пользователь нажимает 1 и 5. Если ответ правильный, должно появиться другое уравнение. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что SOMETIMES, когда ответ представляет собой одну цифру, не обнаруживает никакого нового уравнения, никаких ошибок или чего-то еще. Просто ничего не происходит. В большинстве случаев это происходит, когда ответ «0». Любая идея, что может быть причиной этого? Вот часть кода:Проверенные чеки?
public void checkAnswer(){
int answer = question.getAnswer();
if(ansID2==-1){
if(String.valueOf(answer).equals(String.valueOf(ansID1))){
makeEquation();
}
}else{
if(String.valueOf(answer).equals(String.valueOf(ansID1) + String.valueOf(ansID2))){
makeEquation();
}
}
}
ansID2
установлен быть -1
так, если ответ будет только одна цифра вторая цифра место пропускается. ansID
's назначаются, когда нажата кнопка с цифрой.
checkAnswer
вызывается с помощью кнопки "Проверить ответ" со следующим кодом
EventHandler checkHandler = new EventHandler(){
@Override
public void handle(Event arg0) {
checkAnswer();
}
};
ansID2
устанавливается равным -1 в объявлении поля
Вы можете показать, где ansID2 установлен в -1? и откуда вызывается checkAnswer? – Jimmy
Почему вы конвертируете в 'String' и выполняете сравнения String, когда ваши входы имеют принципиально числовые значения? –
@JohnBollinger, потому что у меня разные типы уравнений - «+», «-», «*» - и, хотя сравнение строк будет быстрее и с меньшим количеством кода (в противном случае я должен ввести дополнительную проверку для типа из уравнения) – Phantomazi