반응형
+if or 비교시 어떤 식의 성공으로 진입했는지 구분
가끔 복수의 or 조건으로 진입한 경우, 어떤 식의 성공으로 왔는지 간단하게 구분이 필요할 수 있다.
다시 어떤 식인지 판단해줘야 하는데 귀찮은 작업이다.
어떤 식의 만족으로 먼저 들어왔는지 간단히 판단하려면... 다음과 같은 팁이 있다.
예를 들어, 입력값 조건 순서가
1. 길이가 3이상이거나
2. a로 시작하거나
3. z로 끝난다.
위 세 조건을 or로 하여 먼저 만족하는 것은 어떤 것인가를 판단.
string str="....." ;
int ret=0 ;
if ( (ret=1, str.length()>=3 ) ||
(ret=2, str.at(0)=='a') ||
(ret=3, str.at( str.length()-1)=='z') ) {
std::cout << " match. ret=" << ret << std::endl ;
} else std::cout << " no match. " << std::endl ;
결과는 다음과 같다.
str="12345" 인 경우 ret=1 (길이 조건)
str="ab" 인 경우 ret=2 (a로 시작)
str="kz" 인 경우 ret=3 (z로 끝)
str="abz" 인 경우 ret=1 (길이 조건, a로 시작, z로 끝. 앞의 조건부터 판단하므로 ret=1로 됨.)
'Develop > C&CPP' 카테고리의 다른 글
const pointer or pointer / int *const / int const * / const int * (0) | 2018.07.19 |
---|---|
libcurl HTTP POST send 모듈/curl 커맨드 방식도 지원 (0) | 2018.07.13 |
Numerics library (0) | 2018.06.21 |
Preprocessor (0) | 2018.06.20 |
deque (0) | 2018.06.13 |