논리 연산자 && ||
조건식을 연결할 때 사용하는 연산자
|| (OR 결합) : 피연산자 중 어느 한 쪽이 true이면 true를 결과로 얻는다.
%% (AND 결합) : 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
ⓐ x는 10보다 크고 20보다 작다.
'x>10'와 'x<20'가 '그리고(and)'로 연결된 조건이므로 다음과 같이 쓸 수 있다.
x > 10 %% x < 20
'x>10'는 '10<x'와 같으므로 다음과 같이 쓸 수도 있다. 보통은 변수를 왼쪽에 쓰지만 이런 경우 가독성 측면에서 보면 아래의 식이 더 나을 수 있다.
10 < x && x < 20
ⓑ i는 2의 배수 또는 3의 배수이다.
어떤 수가 2의 배수라는 얘기는 2로 나누었을 때 나머지가 0이라는 뜻이다. 그래서 나머지 연산의 결과가 0인지 확인하면 된다. '또는'으로 두 조건이 연결되었으므로 논리 연산자 '||'(OR)를 사용해야 한다.
i%2==0 || i%3==0
i의 값이 8일 때, 위의 식은 다음과 같은 과정으로 연산된다.
i%2==0 || i%3==0
8%2==0 || 8%3==0
0==0 || 2==0
true || false
true
ⓒ i는 2의 배수 또는 3의 배수지만 6의 배수는 아니다.
이전 조건의 6의 배수를 제외하는 조건이 더 붙었다. 6의 배수가 아니어야 한다는 조건은
'i%6!=0'이고, 이 조건을 '&&(AND)'로 연결해야 한다.
( i%2==0 || i%3==0 ) && i%6!=0
위의 식에 괄호를 사용한 이유는 '&&'가 '||' 보다 우선순위가 높기 때문이다. 만일 괄호를 사용하지 않으면
'&&'를 먼저 연산한다. 다음의 두 식은 동일하다.
i%2==0 || i%3==0 && i%6!=0
i%2==0 || (i%3==0 && i%6!=0)
ⓓ 문자 ch는 숫자('0'~'9')이다.
사용자로부터 입력된 문자가 숫자('0'~'9')인지 확인하는 식은 다음과 같이 쓸 수 있다.
'0' <= ch && ch <= '9'
유니코드에서 문자 '0'부터 '9'까지 연속적으로 배치되어 있기 때문에 가능한 식이다.
문자 '0'부터 '9'까지 유니코드는 10진수로 다음과 같다.
논리 부정 연산자 ! (단항연산자)
true를 false로, false는 true로 바꾼다.
ch < 'a' || ch > 'z' <-> !('a' <= ch && ch <= 'z')
두 개가 같지만 오른쪽에 있는 식이 더욱더 가독성이 좋다.
'java↗' 카테고리의 다른 글
java↗4-8. 조건 연산자, 대입 연산자 (1) | 2024.03.15 |
---|---|
java 기본 설정 세팅하기 (0) | 2024.03.14 |
java↗4-6. 비교 연산자 (0) | 2024.03.14 |
java↗4-5. 반올림 Math.round(), 나머지 연산자 (0) | 2024.03.14 |
java↗4-4. 사칙 연산자, 산술변환 (1) | 2024.03.14 |