只是对我正在做的事情的简短描述 - 我有随机方程生成器和带有所有数字的按钮。为了回答问题,用户必须点击相应的按钮以形成问题(数字从左到右书写),例如9 + 6 = 用户点击1和5 。如果答案是正确的,那么应该出现另一个等式。我现在遇到的问题是,有时当答案是单个数字时,没有出现新的等式,也没有任何错误或其他问题。什么都没发生。大多数情况下,当答案为“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
。
checkAnswer
EventHandler checkHandler = new EventHandler(){
@Override
public void handle(Event arg0) {
checkAnswer();
}
};
ansID2
在字段声明
答案 0 :(得分:1)
我会用数字做这个:
public void checkAnswer(){
int answer = question.getAnswer();
int response = ansID1;
if(ansID2 >= 0) {
response = 10 * response + ansID2;
} // else a one-digit response
if (answer == response) {
makeEquation();
}
}
至少,这比执行原始代码中的所有字符串操作更有效。话虽如此,我不明白为什么这个版本会产生不同的结果。我倾向于认为你的真正问题出在其他地方,例如答案或答案数字不正确。
特别是,你说
ansID2在字段声明
中设置为-1
但这只有在第一个问题有两位数答案之前就足够了,这会导致ansID2
设置为其他问题。在创建新方程时,应该重置它(以及ans1ID
)。