и оператор не работает, когда используется в блоке идентификации else

StackOverflow https://stackoverflow.com/questions/20353906

  •  25-08-2022
  •  | 
  •  

Вопрос

У меня есть блок кода, который проверяет проверенный статус флажки и отображает значение соответственно, но в моем коде у меня есть место, где я должен использовать оператор, подобный

if (cb1.isChecked()) {
a="abc";        
} 

else if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}

else if(cb2.isChecked()){
a="asd";
}

else{
a="xyz";
}

Я получаю значения, если выбран Checkbox1 или Checkbox2, но когда выбраны оба флажки, я получу только результат как «ABC»

Любая идея, что не так с кодом ??

Это было полезно?

Решение

Это потому, что это else if вместо ifс Как только первый будет удовлетворен, он не проверяет других. Измените заказ, в котором вы их проверяете. Так что -то вроде

if (cb1.isChecked() && cb2.isChecked()) {
    a="abc";        
} 
else if(cb1.isChecked()) {
    a="pqr";
}   
else if(cb2.isChecked()){
    a="asd";
}   
else{
    a="xyz";
}

Другие советы

Изменить на:

if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}

else if (cb1.isChecked()) {
a="abc";        
} 

else if(cb2.isChecked()){
a="asd";
}

else{
a="xyz";
}

В вашем коде, если CD1 был проверен, он больше не попадет в другое.

В лестнице, если иначе будет выполнен только один блок, вы должны сделать это, как следующее:

if (cb1.isChecked()) {
    a = cb2.isChecked() ? "pqr" : "abc";       
} else if(cb2.isChecked()){
    a="asd";
}
else{
    a="xyz";
}

ИЛИ ЖЕ

if(cb1.isChecked() && cb2.isChecked()) {
    a="pqr";
}
else if (cb1.isChecked()) {
    a="abc";        
} 
else if(cb2.isChecked()){
    a="asd";
}
else{
    a="xyz";
}

С иначе, если он этого не делает, он входит в первый, если он не введет остальных, просто возьмите Else и пользователя, если он только, и это работает

Изменить сначала, если условие на

if (cb1.ischecked () &&! cb2.ischecked ())

В настоящее время, поскольку первое, если условия зависит только от значения CB1, контроль переходит в первый блок.

Контроль никогда не входит во второй блок в настоящей логике.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top