Original article: Java Operator – &, && (AND) || (OR) Logical Operators
우리는 대부분의 프로그래밍 언어에서 변수간의 연산을 위해 연산자를 사용합니다
연산자들은 산술 연산자, 대입 연산자, 비교 연산자, 논리 연산자 등의 여러가지 카테고리로 분류할 수 있다.
이 글에서는, 비트 연산자 AND와 논리 연산자 AND(&&
) 및 OR(||
) 에 대해 설명합니다.
비트 연산자 AND
를 사용하는 방법
기호 &
는 비트 연산자 AND
를 나타냅니다. 이는 주어진 숫자들의 이진값을 계산합니다. 이 숫자들의 이진값은 저희에게 보여질때는 10진법으로 보여지게 되죠.&
연산자를 이용해 연산이 될때는, 왼쪽부터 시작하여 두 숫자의 각 자리 값을 연산하게 됩니다.
좀더 잘 이해할 수 있도록 예시를 보여드리겠습니다:
System.out.println(10 & 12);
// 8을 반환합니다.
하나씩 살펴봅시다
10의 이진값은 1010입니다.
12의 이진값은 1100입니다.
다음은 연산 시작 전 염두에 두어야 할 사항입니다:
- 1 and 0 => 0
- 0 and 1 => 0
- 1 and 1 => 1
- 0 and 0 => 0
자, 이제 연산을 시작해봅시다.
10의 첫번째 자리의 수는 1이고 12의 첫번째 자리 수 또한 1입니다. 따라서:
1 and 1 = 1.
두번째 자리의 수로 넘어가봅시다. - 10은 0이고 12는 1입니다:
1 and 0 = 0.
세번째 자리의 수에 대해서 - 10은 1이고 12는 0입니다:
1 and 0 = 0.
네번째 자리 수에 대해서 - 10은 0이고 12도 0입니다:
0 and 0 = 0.
자, 이제 계산된 숫자들을 모두 나열해봅시다. 이는 1000이 될것입니다.
이진값 1000을 10진법으로 변환한다면 8이 되며 따라서 위 연산의 결과는 8입니다.
논리 연산자 AND
를 사용하는 방법
논리 연산자는 조건을 연산하기 위해 사용됩니다. 주어진 조건에 따라서 true
나 false
가 반환됩니다,
기호 &&
는 AND 연산자를 나타냅니다. 이는 두 문(statement)이나 조건문을 연산하고 문/조건문이 둘다 참일때만 true를 반환합니다.
구문은 다음과 같습니다
statment1/condition1 && statemnt2/condition2
위에서 볼수 있듯이 연산자에 의해 구분되어지는 두개의 문/조건문이 있습니다. 연산자는 두 문/조건문을 계산하고 결과를 반환합니다 - 결과는 true 이거나 false이죠
예시는 다음과 같습니다:
System.out.println((10 > 2) && (8 > 4));
// true
두 조건문이 모두 참이기 때문에 이 연산은 true
를 반환합니다 - 10은 2보다 큽니다, 그리고 8은 4보다 큽니다.
두 조건 중 하나라도 참이 아니라면 false
를 반환받게 됩니다.
&&
연산자에 대해 더 이해하려면, true
값을 얻기 위해선 두 조건이 모두 참이어야 함을 알아야합니다.
다음은 false
를 반환하는 다른 예시입니다:
System.out.println((2 > 10) && (8 > 4));
// false
여기서 2는 10보다 크지 않지만 8은 4보다 큽니다 - 따라서 우리는 false
를 반환 받게 됩니다.
조건문중 하나가 참이 아니기 때문이죠.
- 두 조건문 모두 참 =>
true
- 두 조건문 중 하나가 거짓 =>
false
- 두 조건문 모두 거짓 =>
false
논리 연산자 OR
를 사용하는 방법
기호 ||
은 OR
연산자를 나타내기 위해 사용됩니다. 이 연산자는 두 조건문이 모두 거짓인 경우만 false
를 반환합니다.
즉 두 조건문이 모두 참이면 우리는 true를 반환받고, 둘중 하나의 조건문이라도 true
라면 이 경우 또한 true
를 반환받게 됩니다.
관련 구문은 다음과 같습니다
statment1/condition1 || statemnt2/condition2
몇가지 예시를 살펴보겠습니다.
System.out.println((6 < 1) || (4 > 2));
// true
하나의 조건문이 참이기 때문에 true
를 반환하게 됩니다.
- 두 조건문이 모두 참 =>
true
- 두 조건문 중 하나가 참 =>
true
- 두 조건문 모두 거짓 =>
false
결론
이 글에서, 우리는 Java에서 어떻게 비트 연산자 &를 사용하고, 이에 따른 결과는 어떤것인지 배웠습니다.
또한 Java에서 논리연산자 &&와 || 를 어떻게 사용하는지 배웠습니다.
연산에서 사용하는 조건문에 따라 각 연산이 반환하는 값을 배웠습니다.
즐거운 코딩하세요!