有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 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)应该重置