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

조건문 구성 문의드립니다 ..

0 추천

안녕하세요 조건문 구성관련 문의드립니다.

 

a=100

b=200

c=300

if((a+10>abc[0] && abc[0]>a-10) && (b+10>abc[1] && abc[1]>b-10) && (c+10>abc[2] && abc[2]>c-10)){

data=data+1;

}

if((a+10>abc[0] && abc[0]>a-10) && (c+10>abc[1] && abc[1]>c-10) && (a+10>abc[2] && abc[2]>a-10)){

data=data+1;

}

if((b+10>abc[0] && abc[0]>b-10) && (a+10>abc[1] && abc[1]>a-10) && (c+10>abc[2] && abc[2]>c-10)){

data=data+1;

}

if((b+10>abc[0] && abc[0]>b-10) && (c+10>abc[1] && abc[1]>a-10) && (a+10>abc[2] && abc[2]>a-10)){

data=data+1;

}

....
이런식으로 3가지를 받아서 어떤 순서로 받던지 지정된 값 안에 들어오면 데이터를 추가하는건데...
 
이걸 간소화하거나 간단하게 하는 방법이 없을까요 ?
 
5가지는 받아야 할꺼같은데 ......... 이렇게 하면 너무 지저분하고 비효율적인거 같은데
 
방법이 없을까요 ?
 
익명사용자 님이 2014년 3월 28일 질문

2개의 답변

0 추천
지금 올리신대로면 밑은 생략되있지만 그냥 90 <  abc[0], abc[1], abc[2]  < 310 만 해도 될것 같은데 받아오는 데이터가 어떻게 변하는가요? 제약조건이 뭐가 있는지 자료가 필요하네용
초보개발자ㅠ (33,870 포인트) 님이 2014년 3월 28일 답변
아 이게 테스트에 터치 좌표가 입력되어서
각각에 좌표마다 100,200,300 을 검사하여야 합니다.

터치 좌표는 손이 누르는게 0번 1번 2번 세 손까락을 받아 오는것으로
굳이 0번 손까락이 100이여야 확인이 아니라 0번이 100이던 200이던 300이던
상관 없이 0,1,2,번 터치 좌표가 100,200,300에 각각 하나씩 포함되어 있으면
데이터가 증가하도록 하려는 것입니다.

예) 테스트1 = 100 테스트2=200 테스트3=300
    => 데이터+1
     테스트2 = 100 테스트1=200 테스트3=300
    => 데이터+1


테스트1, 테스트2, 테스트3에
a,b,c
a,b,c
b,a,c
b,c,a
c,a,b
c,b,a

이런 조건들중에 하나만 맞아도 데이터가 증가되도록 하려는데..
그냥 이프문으로 좀 무식하게(?) 하는 방법 말고 다른 방법이 없을까 하여
질문드렸습니다.
0 추천
int mflag = 0;  // 플래그 선언 및 초기화

for (int i = 0; i<3; i++)
{
  int temp = (i+1)*100;  
  for(int j = 0; j<3; j++) 
  {
      if( temp-10 <=  abc [ j ] <= temp+10)  // 100, 200, 300 체크
      {
        mflag ++ ;
        break; // 중복 값 방지
      }
  }
}

if(mflag==3)  // 100, 200, 300 이 각 한번 씩만 수행된 상태여야하므로
{
  data = data + 1;
}

이렇게 하면 어떨까용?

 

초보개발자ㅠ (33,870 포인트) 님이 2014년 3월 31일 답변
...