그리고 다른 ID 블록에서 사용될 때 작동하지 않습니다.

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

  •  25-08-2022
  •  | 
  •  

문제

Code 블록이 있는데, 이에 따라 확인 된 상태를 확인하고 그에 따라 값을 표시하지만 내 코드에는 다음과 같은 명령문을 사용해야하는 장소가 있습니다.

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 대신에 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 Else 사다리에서 하나의 블록 만 실행되면 다음과 같이해야합니다.

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의 값에만 의존하므로 제어는 첫 번째 블록으로 들어갑니다.

제어는 현재 논리에서 두 번째 블록으로 들어 가지 않습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top