마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

조건문 때문에 질문드려요

0 추천

저에게 4개의 플래그 값이있는데요

전부 다
 

// if (hotkey01 && hotkey02 && hotkey03) {
// } else if (hotkey03 == false && hotkey02 == false) {
// } else if (hotkey01 == false && hotkey02 == false) {
// } else if (hotkey01 == false && hotkey03 == false){
// } else if (hotkey01 == false) {
// } else if (hotkey02 == false) {
// } else if (hotkey03 == false) {
// } else {
// }
 

이렇게 넣기에는 코드가 너무 길어지고 사용하는데 보기도 힘들어서 그러는데 다른방법이있을까요??

루운 (1,160 포인트) 님이 2014년 1월 8일 질문

2개의 답변

+1 추천
이진법과 비트 or연산을 활용하시고 필요한 조합만 switch case 문으로 정리하세요.

int flag1 = 0x0001; int flag2 = 0x0010; int flag3 = 0x0100; int flag4 = 0x1000;

int CASE_ALL = 0x1111; int CASE_1_AND_2 = 0x0011;

switch(flag1 | flag2 | flag3 | flag4){

case CASE_ALL:

...

case CASE_1_AND_2:

...

}
b22n (22,940 포인트) 님이 2014년 1월 21일 답변
0 추천
if(!a){
	if(!b){
		if(!c){
			if(!d){
				//abcd		
			}	
			//abc
		}else if(!d){
			//abd
		}
		//ab
	}else if(!c){
		if(!d){
			//acd
		}
		//ac
	}else if(!d){
		//ad
	}
	//a
}else if(!b){
	if(!c){
		if(!d){
			//bcd
		}
		//bc	
	}else if(!d){
		//bd
	}
	//b
}else if(!c){
	if(!d){
		//cd
	}
	//c
}else if(!d){
	//d
}

 

겹치는 부분이 없다면 구문끝나는 부분마다 else 처리 하시면 되겠네요 

슈루슈 (2,610 포인트) 님이 2014년 1월 8일 답변
...