我有一个代码块,它会检查复选框的检查状态&相应地显示值, 但在我的代码中我有一个地方,我必须使用像
这样的语句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"仅
任何想法代码都错了吗?
答案 0 :(得分:1)
这是因为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";
}
答案 1 :(得分:0)
首先修改if条件
if(cb1.isChecked()&&!cb2.isChecked())
目前,由于第一个if条件仅取决于cb1的值,所以控制进入第一个块。
控制NEVER进入当前逻辑的第二个块。
答案 2 :(得分:0)
更改为:
if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}
else if (cb1.isChecked()) {
a="abc";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
在你的代码中,如果选中了cd1,它将不再进入else。
答案 3 :(得分:0)
在if else梯形图中,只执行一个块,您应该执行以下操作:
if (cb1.isChecked()) {
a = cb2.isChecked() ? "pqr" : "abc";
} else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
OR
if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}
else if (cb1.isChecked()) {
a="abc";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
答案 4 :(得分:0)
如果他没有,那么他进入第一个如果他没有进入其他人只是拿走其他人和用户ifs并且它有效