我的问题是我的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;
}
答案 0 :(得分:0)
解决问题的方法是,在案例1 中,在break
和if
语句之后放置else
语句,如下所示:
case 1:
if (x > a && a == 0) {
etX.setError("Error1 ");
pass = false;
}
else if (x == a) {
etX.setError("Error2);
pass = false;
}
break;
出现此问题的最可能原因是因为if
和else-if
的条件均不满足。没有break
语句可停止流程(因为未执行if
和else-if
块)。这就是为什么您的代码最终会溢出到下一个案例的原因。尝试记录 x 和 a 的值进行验证。
我希望这会有所帮助。.编码愉快!