논리 연산자
- 논리 값을 비교할 때 사용
- 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 |