我的switch(case),不断评估多个case语句的

时间:2018-07-18 03:42:04

标签: switch-statement spinner

我的问题是我的switch(case)语句不断评估额外的switch case语句。而且我不明白为什么要这么做。

我的问题是在情况10中: 它总是在被评估,不管我选择哪种情况。总是会发生情况10:并评估其是否正确。

我一直在研究它,我不知道发生了什么。为什么要阅读案例10。

public boolean checkIfPossible(double x, double a, double y) {

    boolean pass;

    int value = spinnerA.getSelectedItemPosition();

    switch (value) {
         case 1:
             if (x > a && a == 0) {
                 etX.setError("Error1 "); 
                 pass = false;
                 break;
             } else if (x == a) {
                 etX.setError("Error2); 

                 pass = false;
                 break;
               }

        case 10:
            if (x == y) {
                etX.setError("Error3");
                pass = false;
                break;
            }

         default:
              pass = true;
    }

    return pass;
}

1 个答案:

答案 0 :(得分:0)

解决问题的方法是,在案例1 中,在breakif语句之后放置else语句,如下所示:

case 1:
        if (x > a && a == 0) {
            etX.setError("Error1 "); 
            pass = false;
          }

        else if (x == a) {
            etX.setError("Error2); 
            pass = false;
        }
        break;

出现此问题的最可能原因是因为ifelse-if的条件均不满足。没有break语句可停止流程(因为未执行ifelse-if块)。这就是为什么您的代码最终会溢出到下一个案例的原因。尝试记录 x a 的值进行验证。

我希望这会有所帮助。.编码愉快!