只是我正在做的事情的简短描述 - 我有随机方程生成器和带有所有数字的按钮。为了回答问题,用户必须单击相应的按钮来形成问题(数字从左到右书写),例如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
在字段声明中设置为 -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 is set to -1 in the field declaration
但这仅在第一个问题具有两位数答案之前就足够了,这将导致 ansID2
设置为其他值。创建新方程时,应重置它(以及 ans1ID
)。
关于java - 支票乱了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28202192/