▶연산자란??
연산을 수행하는 기호를 말한다.
연산자의 종류는 크게 4가지로 나눌 수 있다.
(1)산술 연산자 + - * / % << >>
(2)비교 연산자 > < >= <= == !=
(3)논리 연산자 && || ! & | ^ ~
(4)대입 연산자 =
(1)산술연산자는 말 그대로 사친연산이다 .
%는 나머지를 출력하는 연산자이다. 다음 예제를 보면 쉽게 이해할 수 있을 것이다.
한 가지 눈여겨볼 것은 10을 3으로 나눈 결과가 3.3333이 아닌 3이라는 것이다.
나누기 연산자 두 피연사자가 모두 int타입인 경우 연산결과 역시 int타입이다.
따라서 정수형 타입인 int로 인해 소수점은 버려져 버린다. 반올림은 안된다.
위와 같이 형 변환을 해준다면 소수점까지 잘나오는 것을 확인 할 수 있다.
(2) 비교 연산자
비교 연산자는 두 피연산자를 비교하는 데 사용되는 연산자이며, 조건문, 반복문 조건식 등등에 쓰인다. 연산결과는 true와 false 둘 중 하나다.
위 예제와 같이 부등호한 결과가 참이면 true 거짓이면 false이며,
주의사항은 대입 연산자 '=' 와 비교연산다 '=='를 헷갈리면 안된다.
==는 피연산자 두 개가 같는지 비교하는 것이고 대입연산자 =는 오른쪽 연산자를 왼쪽에 대입하는 것이다. 또한 !=는 서로 같지 않을때 참이되는 연산자이다.
지금의 예시를 보자 보여주는 것이 많다. 10.0==10.0f의 값은 같아서 true가 나왔지만 0.1==0.1f는 다르다고 false를 반환했다. 그 이유는 정수형과 달리 실수형은 근사값으로 저장되므로 오차가 발생하기 때문이다. 그리고 13,14,15행을 보면 같은 0.1이지만 flaot와 double형의 오차를 비교해보고있다. double형은 정밀도가 높은 것을 확인 가능하고 flaot는 오차범위가 좀크다는 것을 알 수 있다. 따라서 둘이 비교 연산자를 했을 때 false가 나온 것을 알 수 있다.
추가로, 문자열을 비교할 경우에는 ==가 아닌 equals()메서드를 이용해야한다.
추후에 나오니 알고만 있자. !
(3) 논리 연산자
|| - 피연산자 중 어느 한 쪽만 true이면 true를 결과로 얻는다.
&& - 피연산자 양쪽 모두 true이어야 true를 결과로 얻는다.
예시를 통해 주의할 점을 살펴보자.
① num1은 10보다 크고 20보다 작다.
처음에 가장 많이하는 실수다. 논리연산자를 생략하고 위와 같이 작성하면 오류가 발생한다. 따라서 아래와 같이 구성을 해주어야한다.
② i는 2의 배수 또는 3의 배수이다.
i%2 == 0 || i%3 == 0 // 이런식으로 구성하면된다.
③ i는 2의 배수 또는 3의 배수이지만 6의 배수는 아니다.
( i%2==0 || i%3==0 ) && i%6!=0
&&연산자가 ||연산자보다 우선순위가 높기때문에 위와같다.
④ 문자 ch는 숫자('0'~'9')이다.
'0' <= ch && ch <= '9'
⑤ 문자 ch는 대문자 또는 소문자이다.
('a' <= ch && ch <= 'z') || ('A' <= ch && ch <= 'Z')
논리 부정연산자 '!'는 false를 true로 또 true를 false로 바꾸어준다
!true ㅡㅡㅡㅡ> false
!false ㅡㅡㅡㅡ> true 가된다.
'Foundation > - Java' 카테고리의 다른 글
제어문 - 반복문(for, while, do-while) (0) | 2017.07.20 |
---|---|
제어문 - 조건문(if,switch) (0) | 2017.07.19 |
자료형, 리터럴, 출력 (0) | 2017.07.13 |
eclipse클래스 생성, 주석, 변수 (0) | 2017.07.12 |
다운로드 및 환경설정 (0) | 2017.07.12 |