java搞砸了支票?
只是简单描述一下我在做什么——我有随机方程生成器和所有数字的按钮。为了回答问题,用户必须单击相应的按钮来形成问题(数字从左到右书写),例如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
,因此如果答案仅为一位数,则跳过第二位数^当点击带有数字的按钮时,{
checkAnswer
通过按钮“检查答案”调用,代码如下
EventHandler checkHandler = new EventHandler(){
@Override
public void handle(Event arg0) {
checkAnswer();
}
};
ansID2
在字段声明中设置为-1
# 1 楼答案
我会在数字上这样做:
至少,这比在原始代码中执行所有字符串操作更有效。尽管如此,我不明白为什么这个版本会产生与你不同的结果。我倾向于假设你真正的问题在其他地方,比如答案或回答数字不正确
特别是,你说
但只有当第一个问题的答案是两位数时,这才足够,这将导致
ansID2
被设置为其他值。当创建一个新方程式时,它(以及ans1ID
)应该重置