🔖 INDEX
논리연산자 (Logical Operators)
논리 연산자는 논리적인 조건을 만족하는지 검사하는 연산자입니다. 자바에서는 다음과 같은 논리 연산자를 제공합니다.
1. AND 연산자 (&&) : 두 피연산자가 모두 true일 때 true를 반환합니다. 하나라도 false라면 false를 반환합니다.
boolean a = true;
boolean b = false;
boolean result = (a && b); // false
2. OR 연산자 (||) : 두 피연산자 중 하나라도 true라면 true를 반환합니다. 두 피연산자가 모두 false일 때 false를 반환합니다.
boolean a = true;
boolean b = false;
boolean result = (a || b); // true
3. NOT 연산자 (!) : 피연산자의 논리값을 반대로 바꿉니다. true면 false를, false면 true를 반환합니다.
boolean a = true;
boolean result = !a; // false
논리 연산자는 논리적인 조건 검사에 많이 사용됩니다. 예를 들어, 다음과 같은 코드를 작성하여 나이가 18세 이상이고 성별이 남자인 경우에만 투표를 할 수 있도록 할 수 있습니다.
int age = 20;
char gender = 'M';
if (age >= 18 && gender == 'M') {
System.out.println("투표가 가능합니다.");
} else {
System.out.println("투표가 불가능합니다.");
}
논리 연산자를 사용하여 여러 개의 조건을 함께 검사하고, 논리 연산자를 조합하여 복잡한 조건 검사를 수행할 수 있습니다. 주의할 점은, 논리 연산자는 반드시 boolean 타입의 피연산자에 대해서만 사용해야 한다는 것입니다. 그렇지 않으면 컴파일 오류가 발생합니다.
연산자 우선순위
논리 연산자는 논리적인 조건을 검사하는 연산자로, 논리값(boolean)을 피연산자로 사용합니다. 이 때, 논리 연산자의 피연산자는 우선 순위가 높은 산술 연산자나 비교 연산자와 같은 다른 연산자보다 먼저 계산되어야 합니다.
산술연산자 > 비교연산자 > 논리연산자 > 대입연산자
논리연산자 우선순위
자바에서의 논리 연산자의 순서는 NOT(!)가 가장 높은 우선순위를 가지며, 그 다음으로 AND(&&)가, 그리고 OR(||)가 가장 낮은 우선순위를 가집니다. 이 순서를 바꾸고 싶다면 괄호()를 사용하여 연산 순서를 변경할 수 있습니다.
NOT(!) > AND(&&) > OR(||)
예를 들어, 다음 코드에서 AND 연산자가 OR 연산자보다 먼저 계산되기 때문에, AND 연산이 먼저 실행된 후 OR 연산이 실행됩니다.
boolean a = true;
boolean b = false;
boolean c = true;
if (a && b || c) {
System.out.println("조건이 참입니다.");
} else {
System.out.println("조건이 거짓입니다.");
}
위 코드에서는, (a && b)가 먼저 계산되어 false를 반환하고, 그 다음에 c와 OR(||) 연산이 수행되어 true를 반환합니다. 따라서, "조건이 참입니다."가 출력됩니다.
논리 연산자의 우선순위를 변경하고 싶다면 괄호를 사용하여 연산 순서를 변경할 수 있습니다. 예를 들어, 다음 코드는 OR 연산이 먼저 계산되도록 괄호를 사용하여 우선순위를 변경한 예시입니다.
boolean a = true;
boolean b = false;
boolean c = true;
if (a || (b && c)) {
System.out.println("조건이 참입니다.");
} else {
System.out.println("조건이 거짓입니다.");
}
위 코드에서는, b와 c의 AND(&&) 연산이 먼저 수행되어 false를 반환하고, 그 다음에 a와 OR(||) 연산이 수행되어 true를 반환합니다. 따라서, "조건이 참입니다."가 출력됩니다.
논리 연산자를 사용할 때, 피연산자의 우선순위를 고려하여 괄호를 사용하는 것이 좋습니다. 그렇지 않으면, 의도치 않은 결과가 발생할 수 있습니다.
'프로그래밍 > JAVA' 카테고리의 다른 글
초보 자바 프로그래밍(13) - 대입연산자 (Assignment Operators) (0) | 2023.05.01 |
---|---|
초보 자바 프로그래밍(12) - 비트연산자 (Bitwise Operators) (0) | 2023.05.01 |
초보 자바 프로그래밍(10) - 산술, 비교연산자 (0) | 2023.05.01 |
초보 자바 프로그래밍(9) - 반복문 for-each (0) | 2023.05.01 |
초보 자바 프로그래밍(8) - 반복문 for (0) | 2023.05.01 |
댓글