Java

연산자(관계,논리,빠른평가,삼항)

ryeonng 2024. 4. 11. 05:02

관계(비교)연산자

 

  • 이항 연산자
  • 연산의 결과가 true(참), false(거짓)으로 반환 됨, 비교연산자 라고도 함
  • 조건문, 반복문의 조건식으로 많이 사용 됨

 


 

관계 연산자를 주어로 바라보고 하는 말이 사실인지 거짓인지 확인 하자.

 

package basic.ch03;


/**
 * 관계,비교 연산자 
 * 연산의 결과 값이 무조건 true, false 반환 된다. 
 *
 */
public class Operation5 {

	public static void main(String[] args) {
		
		int num1 = 5; 
		int num2 = 3;
		
		// 관계 연산자를 주어로 바라 보자 
		boolean value = ( num1 > num2 );
		System.out.println(value);
		

		System.out.println(3 < 5);
		System.out.println(3 >= 10);
		System.out.println(3 <= 3);
		System.out.println(3 == 5);
		System.out.println(3 != 2);
		System.out.println("---------------------");
		
		//                   5  < 3
		System.out.println(num1 < num2);
		
		System.out.println(num1 >= num2);
		System.out.println(num1 <= num2);
		System.out.println(num1 == num2);
		System.out.println(num1 != num2);
		
		
		
	} // end of main
	
} // end of class

 


 

논리 연산자

 

  • 관계 연산자와 혼합하여 많이 사용 됨
  • 연산의 결과가 true(참), false(거짓)으로 반환 됨

 

 

package basic.ch03;


/**
 * 
 * 논리 연산자 
 * 관계 연산자와 혼합하여 많이 사용 된다. 
 * 연산에 결과는 true, false 으로 반환 된다.  
 *
 */
public class Operation6 {

	public static void main(String[] args) {
		
		// 논리 연산자는 3가지 종류가 있다. 
		// 논리곱 ---> && (엠퍼센트,엠퍼센트)   
		// 논리합 ---> || (버티컬 바, 버티컬 바)
		// 부정 --> ! 
		
		int num1 = 10; 
		int num2 = 20; 
		
		// 1. 논리곱(&&)
		//                   T     &&     T   
		// 논리곱은 전부 ture 이면 true 반환 한다. 하나라도 거짓이면 false 을 반환 한다. 
		boolean flag1 = (num1 > 0) && (num2 > 0);
		System.out.println("flag 1 : " + flag1);
		
		//        F   =       T    &&    F 
		boolean flag2 = (num1 > 0) && (num2 < 0);
		System.out.println(flag2);
		
		System.out.println("==========================");

		// 2. 논리 합 
		//       T      =       T     ||     F
		// 둘 중에 하나라도 true 이면 연산에 결과는 무조건 true 이다. 
		boolean flag3 = (num1 > 0) || (num2 < 0);
		System.out.println(flag3);
		
		System.out.println("==========================");
		
		// 3. 부정 
		System.out.println("부정 논리 연산자 사용 : " +  !flag3);
		// 연산에 결과가 어떻게 되지 ---> 확인해봐야지 ---> 로깅 한다. 
		
		System.out.println("flag3 : " + flag3);
		
		
	} // end of main
	
} // end of class

 

 


 

빠른 평가(short circuit evaluation)

 

빠른 평가(short-circuit evaluation)는 논리 연산에서 첫 번째 조건이 결과를 결정하는 경우, 두 번째 조건을 평가하지 않는 자바의 특성.

 

ㆍ논리 곱(&&)은 두 항의 결과가 모두 true일 때만 결과가 true

    앞의 항의 결과가 false이면 뒤 항의 결과를 평가하지 않음

ㆍ 논리 합(||)은 두 항의 결과가 모두 false일 때만 결과가 false

      앞의 항의 결과가 true이면 뒤 항의 결과를 평가하지 않음

 

package basic.ch03;

/**
 * 
 * 빠른 평가란? 
 * 논리 연산에 있어 첫 번째 조건이 결과를 결정할 때 
 * 두 번째 조건을 평가 하지 않는 것을 의미한다.    
 *
 */
public class Operation7 {

	public static void main(String[] args) {
		
		int number = 5; 
		int index = 0; 
		
		// 빠른 평가가 동작하는 식을 만들어 보자.
		//                                   F
		//                        15              <  10  
		boolean result = ( (number = number + 10) < 10 ) && ( (index = index + 2) < 10 );
		System.out.println("현재 number 변수에 값은 : " + number);
		System.out.println("현재 index 변수에 값은 : " + index);
		
		System.out.println("===================");
		
		// number 값 재 설정 
		number = 5; 
		// 논리합을 이용한 빠른 평가 식을 만들어 보자. 
		
		//              F               ||       T  
		result = ( (number += 10) < 10) || ( (index += 2) < 10);
		
		// 문제 
		System.out.println("number : " + number);
		System.out.println("index : " + index);
		
		// 도전 문제
		// number 와 index 반대로 변경 해서 출력해보자. 
		
	} // end of main
	
} // end of class

 

'Java' 카테고리의 다른 글

조건문 if  (1) 2024.04.11
삼항 연산자(조건 연산자)  (1) 2024.04.11
연산자(복합 대입 연산자)  (0) 2024.04.11
연산자(증감, 감소)  (0) 2024.04.11
연산자(산술)  (0) 2024.04.11