자체임상실험
Inform Restaurant
자체임상실험
전체 방문자
오늘
어제
  • 분류 전체보기 (89)
    • IT정보와 지식 TABLE (1)
      • IT정보 및 꿀팁 (0)
      • Windows (1)
      • Linux (0)
    • Linux TABLE (0)
      • 취약점 점검 스크립트 (0)
    • Developer TABLE (33)
      • Java (33)
      • Java Algorithm (0)
    • DataBase TABLE (1)
      • SQLD-P (1)
    • Cloud TALBE (0)
      • AWS (0)
    • Security TABLE (1)
      • 비박스(bee-box) 취약점 점검 (1)
      • 보안기사 (0)
    • Writer TABLE (42)
      • 기사필사 (42)
      • 서평 (0)
    • Growth TABLE (10)
      • 국민취업지원제도 (4)
      • 국비학원 (6)
    • Life TABLE (0)
      • 자서전 (0)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • 천자칼럼
  • for
  • 초장기 주택담보대출
  • 조용한 고용
  • 반복문
  • if
  • do while
  • 동아일보
  • 배열복사
  • 지하공간
  • 경향신문
  • 2차원배열
  • Java
  • 조건문
  • 한겨레
  • 해양오염수
  • 방사능
  • 논설위원
  • 논설위원필사
  • @
  • 디엠제트
  • Switch
  • KH정보교육원
  • 국비학원
  • while
  • 문자열비교
  • 배열
  • array
  • Arrays
  • 국민취업지원제도

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자체임상실험

Inform Restaurant

Developer TABLE/Java

논리 연산자, Short-circuit evaluation

2021. 8. 25. 17:15

논리 연산자

  • 논리 값을 비교할 때 사용
  • AND와 OR로 조건 연결

&&(AND)

  • L-Value와 R-Value 모두 true 일 경우에만 true 값 반환

||(OR)

  • L-Value와 R-Value 하나라도 true 인 경우 true 값 반환

1 ~ 100 사이의 값인지 확인

public void method() {
	int nInput = 0;
	boolean bResult = false;
	
	Scanner s = new Scanner(System.in);
	System.out.printf("Input Number(1~100): ");
	nInput = s.nextInt();
	
	bResult = (0 < nInput) && (nInput <= 100);
	System.out.println("Result: " + bResult);
}

결과값

Input Number(1~100): 0
Result: false

Input Number(1~100): 77
Result: true

입력값이 'y' 또는 'Y' 인지 확인

public void method2( ) {
	
	char ch = ' ';
	boolean bResult = false;
	
	Scanner s = new Scanner(System.in);
	System.out.printf("Input Character: ");
	ch = s.nextLine().charAt(0);
	
	bResult = (ch == 'y') || (ch == 'Y');
	
	System.out.printf("Result: %s\n", bResult);
}

결과값

Input Character: a
Result: false

Input Character: y
Result: true

쇼트서킷(short-circuit Evaluation)

  • 이미 결정난 값에 대해 불필요한 연산을 수행하지 않음
  • 컴퓨터의 연산 속도가 올라감 
public void method3() {
	
	int nData = 20;
	boolean bResult = false;
	
	System.out.println("nData: " + nData);
	System.out.println();
    
	bResult = (nData < 10) && (++nData > 0);	// nData < 10 이 이미 거짓이기 때문에
    							// ++nData > 0 을 연산하지 않는다.
	System.out.printf("&& Result: %s\n", bResult);
	System.out.println("++nData: " + nData);
	System.out.println();
    
	bResult = (nData < 40) || (++nData > 0);	// nData < 40 이 이미 참이기 때문에
    							// ++nData > 0 을 연산하지 않는다.
	System.out.printf("|| Result: %s\n", bResult);
	System.out.println("++nData: " + nData);
	
}

결과값

nData: 20

&& Result: false
++nData: 20

|| Result: true
++nData: 20



저작자표시 비영리 (새창열림)

'Developer TABLE > Java' 카테고리의 다른 글

복합 대입 연산자  (0) 2021.08.25
비교 연산자(관계 연산자), 문자열비교 equals(), equalsIgnoreCase()  (0) 2021.08.25
단항 연산자  (0) 2021.08.25
    'Developer TABLE/Java' 카테고리의 다른 글
    • 삼항 연산자
    • 복합 대입 연산자
    • 비교 연산자(관계 연산자), 문자열비교 equals(), equalsIgnoreCase()
    • 단항 연산자
    자체임상실험
    자체임상실험
    생활에 유용한 정보와 일상을 담은 휴식처, Sobremesa 입니다.

    티스토리툴바