Java 和操作员在else id块中使用时不工作

Java 和操作员在else id块中使用时不工作,java,Java,我有一段代码,它检查复选框的选中状态并相应地显示值, 但在我的代码中,我有一个地方必须使用如下语句 if (cb1.isChecked()) { a="abc"; } else if(cb1.isChecked() && cb2.isChecked()) { a="pqr"; } else if(cb2.isChecked()){ a="asd"; } else{ a="xyz"; } 如果选中复选框1或复选框2,我会得到值,但当选中两个复选框时,我得到

我有一段代码,它检查复选框的选中状态并相应地显示值, 但在我的代码中,我有一个地方必须使用如下语句

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

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

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

else{
a="xyz";
}
如果选中复选框1或复选框2,我会得到值,但当选中两个复选框时,我得到的结果仅为“abc”


知道代码有什么问题吗???

如果条件为

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

目前,由于第一个if条件仅取决于cb1的值,因此控制进入第一个块


控件从不进入当前逻辑中的第二个块。

这是因为它是一个
else if
而不是
if
s。一旦第一个满意,它就不会检查其他的。更改检查这些内容的顺序。大概是

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,它将不再进入else。

在if else梯形图中,只会执行一个块,您应该按照以下方式执行:

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


对于else,如果他不输入,则输入第一个,如果他不输入其余的,则仅使用else和用户ifs,它在if-else梯形图中工作

仅执行一个块。。。
if(cb1.isChecked() && cb2.isChecked()) {
    a="pqr";
}
else if (cb1.isChecked()) {
    a="abc";        
} 
else if(cb2.isChecked()){
    a="asd";
}
else{
    a="xyz";
}