본문 바로가기

Foundation/- Java

연산자

▶연산자란??

연산을 수행하는 기호를 말한다. 


연산자의 종류는 크게 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