Java

[Java]연산자들

MoZZANG 2022. 2. 24. 21:41

산수 연산자는 우리가 일반적으로 사칙연산에 사용하는 연산자들이다.

 

산수연산자를 사용할 때의 몇가지의 약속이 존재하는데 다음과 같다.

 

<산수연산자 규칙>

 

-산술연산자(이상 연산자)의 결과는 다양하다
-산술연산자내에서의 연산 우선순위 (*,%,/) > (+,-)
-우선 순위가 같은 경우 왼쪽에서 오른쪽으로 연산한다.
-산술연산자를 써서 식을 만들면 산술식

 

간단한 예제를 보자

▲ 위에서 제시한 산수연산자 규칙에 따라서 계산하면 결과는 -3이 출력된다.

 

 

 

 

 

 

 

 

비교연산자는 말 그대로 비교를 하는 연산자이다.

 

비교연산자에도 몇 가지의 규칙이 있는데 다음과 같다.

 

<비교연산자 규칙>

 

- 비교연산자(이항연산자)의 결과는 true아니면 false
- 비교연산자는 모두 우선순위가 같다
- 산술연산자가 비교 연산자보다 우선 순위가 높다
- 비교연산자를 사용한 식은 비교식

 

 

 

 

 

 

 

 

 

<논리연산자와 규칙>

 

- 논리연산자(이항연산자 또는 단항연산자)의 결과값은 true, false이다.

   1) && : and연산자는 두 항이 모두 참일때만 참이다. (우리가 영어에서 쓰는 A and B 구문과 동일한 형태이다.)

   2) || : or연산자는 두 항중 하나라도 참이면 참이다. (우리가 영어에서 ㅆ는 A or B 구문과 동일한 형태이다,)

   3) ! : not연산자는 유일하게 단항으로 이루어지는 연산자이고, 단항의 결과값을 반대로 바꿔주는 기능을한다.

          단항이 참이면 거짓, 거짓이면 참으로 출력한다.

   4) ^ : xor연산자(배타연산자)는 두 항이 값이 다를 때만 참이다. 즉, 두 항의 값이 서로 같으면 거짓이 되는 것이다.

 - 논리연산자의 우선 순위는 ! > && > ||, ^ 순으로 이루어지며 단항이 이항보다 우선순위가 높다.

 - &&와 &, ||와 |는 결과값은 같다. 하지만 우리는 무조건 둘로 이루어진 것을 사용하도록 하자. why?

   &&는 첫째항이 false이면 어차피 둘째항이 true이더라도 결과는 false이기 때문에 둘째항을 계산안한다. 하지만

   &는 첫째항이 false이더라도 두번째항을 계산하기 때문에 불필요한일을 하게 되버리기 때문이다.(||도 같은 원리)

 - 산술연산자 > 비교연산자 > 논리연산자 순으로 우선순위가 적용된다.

 

 

논리연산자의 예제들을 보자.

 

-&&-

▲ 둘째 줄에서 && 양쪽의 값이 모두 true가 아니므로 false가 되고 그 값이 b에 저장된다. 결과적으로 b는 false가 된다.

 

 

 

-||-

▲ || 에서는 양쪽 값중 하나라도 true면 true이므로 b는 true가 된다. 결과적으로 true가 출력된다.

 

 

 

-^-

▲ ^에서는 양쪽값이 서로 달라야 true가 된다. 결과적으로 true가 출력된다.

 

 

 

 

 

 

 

 

-연산자들의 혼합사용-

 

연산자들이 혼합사용 되었을 때는  - 산술연산자 > 비교연산자 > 논리연산자 순으로 우선순위가 적용된다.

 

예제1)

결과는 b=false

 

 

예제2)

결과는 b=true

 

 

예제3)

결과는 b=true

 

 

 

 

 

<대입연산자>

 

우리가 앞선 변수포스팅에서 알아본 내용이다. 

 

변수명 = 값;  의 구조가 있으면 대입연산자(=)의 오른쪽에 있는 값을 왼쪽의 변수에 대입한다.

 

▲ num1이라는 변수선언과 동시에 100이라는 값을 통해 초기화도 시켰다. 변수선언과 동시에 초기화를 시킬때는 대입연산자 왼쪽에 있는 변수가 먼저 생성된 다음 대입연산자 우측의 값이 생성된 변수에 대입하게 된다.

 

 

 

--축약형식의 대입연산자

이때 여러가지 축약형식의 대입연산자들이 존재하는데 +=, -=, *=, %= 등이 있다.

 

예제와 설명을 보면 도움이 될 것이다.

 

▲ 위 예제처럼 축약형을 쓰면 코드가 훨씬 짧아진다.

 

 

 

 

--증감연산자

증감연산자는 단항 연산자이며 증가연산자(++)감소연산자(--)가 있다.

 

++는 자기자신을 1증가시키며, 

--는 자기자신을 1감소시킨다.

 

단독으로 쓰일 때는 항이 증감연산자 앞에 붙거나 뒤에 붙거나 결과는 같다. 하지만 다른 연산자와 결합할 때는 

 

++(또는--)변수 : 자신을 증감시킨다. (전위 연산)

변수++(또는--) : 다른 연산을 수행한 후 자신을 증감시킨다. (후위 연산)

 

 

예제를 보자.

 

1)단독으로 사용시

 

▲ 단독으로 사용 시에는 자기 자신 외에 다른 연산이 없으므로 똑같은 기능을 수행하게 된다.

따라서 num3++와 ++num3에서 각각 1씩 더해져 결과적으로 num3는 12가 된다.

 

 

 

 

2)다른연산과 함께 사용시

▲ 후위 연산에서는 num4와 num3의 연산이 끝난 후 1을 더하기 때문에 result는 100이 되고 num3는 11이 된다.

    전위 연산에서는 num3에 1을 먼저 더해서 12가 되고 이후 연산을 진행하기 때문에 result는 120이 되는 것을 볼 수 있다. 이처럼 부호의 위치 차이 하나만으로도 값의 차이가 커지게 될 수 있다.

 

 

 

 

 

 

'Java' 카테고리의 다른 글

[Java]제어문(Control Statement) - switch문  (0) 2022.02.25
[Java]제어문(Control Statement) - if문  (0) 2022.02.25
[Java]Format String  (0) 2022.02.24
[Java]Escape문자  (0) 2022.02.24
[Java]형변환(TypeCasting)  (0) 2022.02.24