22.03.14 논리연산자

Saparian·2022년 3월 14일
0

오늘의배움

목록 보기
32/53

논리연산자의 효율적인 연산 특징

	public static void main(String[] args) {
		int a = 5;
		int b = 0;
		
		System.out.printf("a=%d, b=%d%n", a, b);
		
		// || : 좌측이 참이기때문에 우측 피연산자는 평가하지 않았다. -> b의 값은 그대로 남아있다.
		System.out.printf("a!=0 || ++b!=0 = %b%n", a!=0 || ++b!=0);
		System.out.printf("a=%d, b=%d%n", a, b);
		
		// && : 좌측이 거짓이기때문에 우측 피연산자는 평가하지 않았다. -> b의 값은 그대로 남아있다.
		System.out.printf("a==0 && ++b!=0 = %b%n", a==0 && ++b!=0);
		System.out.printf("a=%d, b=%d%n", a, b);

		// && : 좌측이 참이기떄문에 우측 피연산자도 평가가 되었다. ->  -> b의 값이 증가되었다.
		System.out.printf("++b!=0 && a==0 = %b%n", ++b!=0 && a==0 );
		System.out.printf("a=%d, b=%d%n", a, b);
	}

논리부정연산자 "!"

public static void main(String[] args) {
		boolean b = true;
		char ch = 'C';
		
		System.out.printf("b=%b%n", b);
		System.out.printf("!b=%b%n", !b);
		System.out.printf("!!b=%b%n", !!b);
		System.out.printf("!!!b=%b%n", !!!b);
		System.out.println();
		
		System.out.printf("ch=%c%n", ch);
		System.out.printf("ch < 'a' || ch > 'z'=%b%n", ch < 'a' || ch > 'z');
		System.out.printf("!('a'<=ch && ch<='z')=%b%n", !('a'<=ch && ch<='z'));
		System.out.printf("  'a'<=ch && ch<='z' =%b%n", 'a'<=ch && ch<='z');
	}

논리부정연산자의 연산 순서 : 단항연산자이기 때문에 피연산자와 가까운 것부터 연산이 된다.
!!b
!!true
!false
true

0개의 댓글