Java
[Java] 논리 연산자 / &&(논리 곱) / ||(논리 합) // !(부정) / 논리 연산에서 모든 항이 실행되지 않을 경우 - 단락 회로 평가
bkuk
2022. 9. 26. 14:33
논리 연산자
연산자 | 기능 |
&&(논리 곱) | 두 항이 모두 참인 경우에만 결과 값이 참 그렇지 않은 경우는 거짓 |
||(논리 합) | 두 항 중 하나의 항만 참이면 결과 값은 참 두항이 모두 거짓이면 결과 값은 거짓 |
!(부정) | 단항 연산자이며, 참인 경우는 거짓으로 바꾸고, 거짓이면 참으로 바꿈. |
예제
public class OperationEx3 {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
// true
boolean flag = ( num1 > 0 ) && ( num2 > 0 );
System.out.println( flag );
// false
flag = ( num1 < 0 ) && ( num2 > 0 );
System.out.println( flag );
// true
flag = ( num1 < 0 ) || ( num2 > 0 );
System.out.println( flag );
}
}
출력
논리 연산에서 모든 항이 실행되지 않는 경우(단락 회로 평가)
public class OperationEx4 {
public static void main(String[] args) {
int num1 = 10;
int i = 2;
//논리 곱에서 앞 항이 거짓이면 뒷 항이 실행되지 않아서 i값은 그대로
boolean value = (( num1 = num1 + 10) < 10) && ((i = i + 2) < 10 );
System.out.println(value);
System.out.println(num1);
System.out.println(i);
////논리 합에서 앞 항이 참이면 뒷 항이 실행되지 않아서 i값은 그대로
value = (( num1 = num1 + 10) > 10) || ((i = i + 2) < 10 );
System.out.println(value);
System.out.println(num1);
System.out.println(i);
//논리 합에서 앞 항이 거짓이면 뒷 항이 실행되면서 i값이 변함
value = (( num1 = num1 + 10) < 10) || ((i = i + 2) < 10 );
System.out.println(value);
System.out.println(num1);
System.out.println(i);
}
}