본문 바로가기

Java/Java 기초

[Java] 논리,비교 연산자 조건 활용하기 Operation Logic

비교 연산자 : < > <= >= == !=
 - < > <= >= : 피연산자 : 숫자
 - == != : 피연산자 : 모든 데이터
 - 결과는 논리값으로 조건에서 주로 사용

논리 연산자 : ! && ||
 - 피연산자 : 논리값(조건), 결과 : 논리값
  두 개 이상의 논리값(조건)을 하나의 논리값으로 만드는 연산자


 - && : AND 연산으로 '논리곱'이라고도 함.
  모든 조건이 참이어야 결과가 참이 도는 연산.
  조건들 중 하나라도 거짓이면 결과는 거짓이 됨.


 - || : OR 연산으로 '논리합'이라고도 함.
  모든 조건이 거짓이어야 겨로가가 거짓이 되는 연산.
  조건들 중 하나라도 참이면 결과는 참이 됨.


 - ! : NOT 연산으로 '부정'이라고도 함.
  단항 연산자로 논리값을 뒤집어 줌.

 

class OpLogic 
{
	public static void main(String[] args) 
	{
		int n1 = 0, n2 = 0;
		boolean result;
		result = (n1 += 10) < 0 && (n2 += 10) > 0; // n1 = 10 , n2 = 0
		// and연산에서 1번재 조건이 거짓이므로 2번재 조건은 검사도 하지 않고 넘어감. 
		System.out.println("result : " + result);
		System.out.println("n1 : " + n1 + ", n2 : " + n2);
		
		result = (n1 += 10) > 0 || (n2 += 10) > 0; // n1 = 20, n2 = 0
		// or연산에서 1번째 조건이 참이므로 2번째 조건은 검사없이 넘어감.
		System.out.println("result : " + result);
		System.out.println("n1 : " + n1 + ", n2 : " + n2);

		// 해결책
		n1 = 0;
		n2 = 0;
		n1 += 10;
		n2 += 10;
		// 조건식 안에서 값이 변하는 연산을 넣지 않고 밖에서 연산 후 조건 검사.
		result = n1 < 0 && n2 > 0;
		System.out.println("result : " + result);
		System.out.println("n1 : " + n1 + ", n2 : " + n2);
		// n1 : 10, n2 : 10

		n1 += 10;
		n2 += 10;
		result = n1 > 0 || n2 > 0; // n1 = 20, n2 = 0
		// or연산에서 1번째 조건이 참이므로 2번째 조건은 검사없이 넘어감.
		System.out.println("result : " + result);
		System.out.println("n1 : " + n1 + ", n2 : " + n2);
		// n1 : 20, n2 : 20

		int num1 = 10, num2 = 20, num3 = 30;
		num1 = num2 = num3;
		System.out.println("num1 : " + num1); // num1 : 30
		System.out.println("num2 : " + num2); // num2 : 30
		System.out.println("num3 : " + num3); // num3 : 30

	}
}

 

728x90
반응형