관계연산자
- 이항연산자
- 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 한다.
- 조건문, 반복문의 조건식으로 많이 사용 됨
논리연산자
- 관계연산자와 혼합하여 많이 사용됨
- 연산의 결과가 true(참), false(거짓)으로 반환됨
논리 연산에서 모든 항이 실행되지 않는 경우(short circuit evaluation)
● 논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true
-- > 앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음
● 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false
-- > 앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음
package ch03;
public class MainTest7 {
public static void main(String[] args) {
// 핵심정리
// 논리 연산자 ( &&, ||, ! )
// 관계 연산자와 혼합하여 많이 사용한다.
// 연산의 결과는 true, false로 반환된다.
int num1 = 10;
int num2 = 20;
// 논리 곱 연산자(&&)는 모든 결과 값이 참이어야 참이 나온다. true
// 하나라도 거짓이 나오면 무조건 거짓이 나온다. false
// 논리곱 연산
boolean flag1 = (num1 > 0) && (num2 > 0); // 앞 연산이 T, 뒤 연산이 T 이므로 논리 곱 출력 값도 True!
System.out.println(flag1);
boolean flag2 = (num1 > 0) && (num2 < 0); // 앞 연산이 T, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!
System.out.println(flag2);
boolean flag3 = (num1 < 0) && (num2 < 0); // 앞 연산이 F, 뒤 연산이 F 이므로 논리 곱 출력 값은 False!
System.out.println(flag3);
// 결론
// 논리 곱에서 하나라도 거짓이 있으면 연산의 결과는 false이다.
System.out.println("============================");
// 논리 합 연산(||)
// 논리 합에서는 하나라도 참이 있으면 연산의 결과는 True이다.
flag1 = (num1 < 0) || (num2 > 0); // 앞 연산은 F, 뒤 연산은 T 논리 합은 하나라도 참이면 참 값이 출력되므로 True
System.out.println(flag1);
// flag2 = T || T -> T
// flag3 = T || F -> T
// flag4 = F || F -> F
flag1 = (num1 > 0) || (num2 > 0); // T || T -> T
System.out.println(flag1);
flag1 = (num1 < 0) || (num2 > 0); // F || T -> T
System.out.println(flag1);
flag1 = (num1 < 0) || (num2 < 0); // F || F -> F
System.out.println(flag1);
}
}
package ch03;
public class MainTest7_1 {
public static void main(String[] args) {
// 논리 연산자(논리곱, 논리합)
int num1 = 5;
int i = 0;
boolean value = ( (num1 = 1 +10 ) < 10 ) && ( ( i = i + 2 ) < 10 );
System.out.println(value); // 논리 곱 기준 앞 연산자가 false 값이므로 뒤 연산자는 확인할 필요없이 false가 출력됨
System.out.println(num1);
System.out.println(i); // 앞 연산이 false 이므로 뒤 연산자를 확인할 필요가 없어서 빠른 평가에 의해 2가 더해지지 않고 0으로 바로 출력
// 논리 합
boolean value2 = ((num1 = num1 + 1) > 0) || ((i = 100) < 2000 );
System.out.println(value2);
System.out.println(num1);
System.out.println(i);
// 부정 연산자 (!)
// value2 = true
System.out.println(!value2); // value2 값 참을 부정하므로 false
System.out.println(value2);
} // end of main
} // end of class
조건 연산자
- 삼항연산자
- 조건식의 결과가 true(참)인 경우와 false(거짓)인 경우에 따라 다른 결과가 수행됨
- if (조건문)을 간단히 표현할 때 사용할 수 있음
int num1 = (5 > 3) ? 10 : 20; // 조건식이 참이면 10, 거짓이면 20을 num1에 입력
System.out.println(num1);
// 변수의 선언과 초기화
int num2 = (5 < 3) ? 10 : 20;
System.out.println(num2); // 조건식이 거짓이므로 20출력
System.out.println("=================");
System.out.println((5 < 3) ? 10 : 20);
연산자 우선순위
● 가장 높은 순위 연산자는 () [] .
● 가장 낮은 순위 연산자 =
'Java > Java 이론' 카테고리의 다른 글
[JAVA] 반복문 (0) | 2023.07.27 |
---|---|
[JAVA] if 조건문 (0) | 2023.07.26 |
[JAVA] 산술연산자 (1) (0) | 2023.07.26 |
[JAVA] 캐멀(Camel) 스타일 (0) | 2023.07.25 |
[JAVA] 대입연산자와 부호연산자 (0) | 2023.07.25 |