살짝 가벼운 주제..
코딩을 하면서 if문을 사용안할수가 없다.
if문 안에는 true/false를 나타낼수 있는 조건문을 넣어야 한다.
즉,
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bool bflag = true;
if( bflag )
{
/// true
}
else
{
/// false
}
|
cs |
이러한 형태로 구성을 하여야 할 것이다.
그렇다면 저 bflag 부분은 저렇게만 넣을 수 있는가? 당연히 아니죠..
2가지, 3가지의 변수값을 확인 해야 할 때도 있다.
이런 상황
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
bool bflag1 = true;
bool bflag2 = true;
bool bflag3 = true;
if( bflag1 && bflag2 && bflag3 )
{
/// true
}
else
{
/// false
}
if( bflag1 || bflag2 || bflag3 )
{
/// true
}
else
{
/// false
}
|
cs |
그렇다면.. 여기서 사용한 &&, ||은 어떤것인가.. 다들 알다싶이 AND, OR 조건이다.
그렇다면 & 구문과 &&의 구문의 차이는 무엇일까..? | 구문과 || 구문 또한 무슨 차이일지...
2개의 구문 차이는 뒤에 해당하는 조건을 체크하느냐 마냐이다..
즉,
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bool bflag1 = false;
bool bflag2 = true;
bool bflag3 = true;
if( bflag1 && bflag2 && bflag3 )
{
/// true
}
else
{
/// false
}
|
cs |
코드 확인상 bflag1은 false, bflag2, bflag3는 true 다
이런 상황이라면 bflag1이 false 이므로 bflag2, bflag3는 확인도 하지 않고 false로 판단한다 (and구문이므로 어떻게 해든 false 가 나와버리는 상황)
만약 bflag 값이 아래와 같다면..
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bool bflag1 = true;
bool bflag2 = false;
bool bflag3 = true;
if( bflag1 && bflag2 && bflag3 )
{
/// true
}
else
{
/// false
}
|
cs |
bflag1은 true이므로 조건을 확인해보고 bflag2가 false이므로 여기서 조건 종료, bflag3은 무시할 것이다.
이것이 && 구문...
만약 저 부분에 & 구문을 썼다면 bflag1, bflag2, bflag3을 모두 체크할 것이다.
결국 쓸데없는 시간을 소비할 것이라는 것.
해당 예제는 간단하므로 별 차이가 없겠지만, 만약 큰 데이터를 참조해야한다거나 한다면 차이가 생길수 있다.
|| 구문 또한 && 구문과 동일하다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bool bflag1 = true;
bool bflag2 = false;
bool bflag3 = false;
if( bflag1 || bflag2 || bflag3 )
{
/// true
}
else
{
/// false
}
|
cs |
bflag1이 true 이므로 bflag2, bflag3은 무시하고 무조건 true로 체크한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
bool bflag1 = true;
bool bflag2 = false;
bool bflag3 = false;
if( bflag1 | bflag2 | bflag3 )
{
/// true
}
else
{
/// false
}
|
cs |
bflag1이 true이나 | 구문이므로 bflag2, bflag3을 모두 체크할 것이다.
결론..!!
값 비교구문을 사용할때는 &구문이나 | 구문을 쓰지말고 && 구문, || 구문을 사용하자!!!
(비트 연산시에는 &, | 구문을 사용!!!!)
구문이 간단하여 예제는 없음..!