반응형

관계연산자

- 이항연산자

- 연산의 결과가 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

+ Recent posts