およびオペレーターは他のIDブロックで使用されたときに機能しません

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」のみとして結果が得られます

コードの何が問題なのか?

役に立ちましたか?

解決

これは、そのanからです else if それ以外の ifs。最初のものが満足したら、他のものをチェックしません。これらをチェックする順序を変更します。とても

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には入りません。

他のはしごの場合、1つのブロックのみが実行されます。これを次のように行う必要があります。

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";
}

彼が他の人に入っていない場合、彼がそうでない場合は他の人と一緒に他の人とユーザーを取るだけで動作します

条件の場合は最初に変更します

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

現在、最初のIF条件はCB1の値のみに依存するため、制御は最初のブロックになります。

コントロールは、現在のロジックの2番目のブロックに入ることはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top