논리연산에서 논리곱과 논리합의 결과값 반환은 아래와 같다.
논리 곱(&&)인 경우 두 항의 결과가 모두 true인 경우에만 true를 반환한다.
논리 합(||)인 경우 두 항의 결과 중 1개라도 true이면 true를 반환한다.
조건문에서 위와 같이 논리 곱과 합으로 여러개의 항을 실행할 때 모든 연산 항이 실행되지 않아도 결과를 평가하여 도출할 수 있는데.
논리곱과 논리합 시 이후의 항이 실행되지 않고도 결과가 도출되는 경우를 단락회로평가라고 한다.
어떤 조건문에서 조건이 2개 이상일 때 첫번째 항의 평가만으로 결정되어 조건문을 실행하거나 실행되지 않는 경우를 의미한다.
- 조건이 2가지 이상일 때 논리곱(&&)인 경우,
첫항의 조건이 false면 두번째 항을 실행하지 않는다.
int sampleNum = 4 ;
if( sampleNum == 1 && sampleNum < 9 ) { // false
System.out.println(sampleNum); // 이 부분이 수행되지 않는다.
}
ㄴ위 경우 sampleNum == 1에서 false가 나왔기 때문에 다음 항인 sampleNum 이 9보다 작은지 체크하지 않고 false를 반환한다.
따라서 조건문 안의 출력문이 실행되지 않는다.
- 조건이 2가지 이상일 때 논리합(||)인 경우
, 첫 항의 조건이 true이면 두번째 조건 항을 실행하지 않는다. ( true이므로 )
int sampleNum = 1 ;
if( sampleNum == 1 || sampleNum < 9 ) { // true
System.our.println(sampleNum); // 이 부분이 수행된다.
}
결과 : 1
ㄴ 이 경우 sampleNum == 1 이 true이므로 sampleNum 이 9보다 작은지 체크하지 않아도 true 를 반환한다.
따라서 조건문 안의 출력문이 실행된다.
'공부함 > JAVA' 카테고리의 다른 글
| [JAVA] 조건문 ( if / if-else / 삼항연산자 / switch-case / switch Expression) (0) | 2023.06.26 |
|---|---|
| [JAVA] java의 연산자들 (0) | 2023.05.31 |
| [JAVA] 자료형( 기본,참조, ), 리터럴, 형변환 (0) | 2023.05.24 |
| [JAVA] 변수의 정의와 이름 규칙 (0) | 2023.05.17 |
| [인강] 프로그래밍이란 (0) | 2023.05.17 |