MapleStory Cookie With Halo

☕ JAVA/☕ Variables & Data Type

[JAVA]연산자

뉴이 NUEY 2024. 11. 22. 15:23
반응형

 

연산에 사용되는 표시와 기호를 연산자.
연산되는 데이터를 피연산자라고한다.

 


 

사칙연산자
: 덧셈, 뺄셈, 곱셈, 나눗셈.

 

 자바에서 사용하는 연산자 기호는 일반 수학에서 사용하는 표기와 다를 수 있습니다.
 example) 곱하기 연산은 자바에서 *로 표기합니다.

 

  •  +  더하기

  •  -   빼기

  •  *   곱셈

  •  /   나누기

💡 코딩에서 %는 나머지를 뜻합니다.

 


 

대입연산자
: 변수에 값을 대입한다.

 

변수에 값을 더하거나 나누는 등 값을 변경할 때 사용합니다.

 

  • +=

  • -=

  • *=

  • /=

  • %=

비권장 코드
코딩에서 변수i에 값을 더할 때 이런 식으로 i + 10 이라고 적지 않습니다.
기능은 동일하지만 대입연산자를 사용하면 성능과 가독성이 올라가기 때문입니다.

 

나머지 % 란
10을 7로 나눈 나머지 3이 나옵니다.

 


 

부호연산자 +와 -

 

 

  • 부호연산자를 변수 앞에 붙인다.

  • +연산자는 변수 값의 부호를 유지한다.

  • -연산자는 변수 값의 부호를 양수를 음수로, 음수는 양수로 바꿀 수 있다.

 💡 부호연산자를 사용할 때, 주의할 점은 산출 타입이 int가 된다는 것이다.
만약 short res = -x; 과 같이 사용하면 예외가 발생한다.

 


 

증감연산자
++ 와 --

 

전위연산자

 

  • ++ : 1을 증가 시킵니다.

  • -- : 1을  감소시킵니다.

이렇게 변수 앞에 ++/--를 적는 것을 증감연산자 중 전위연산자입니다.
전위 연산자는 적는 동시에 값이 증감됩니다.

 

후위 연산자

 

  • 변수 뒤에 ++/--를 적는 것을 후위연산자라고 합니다.

  • 후위연산자는 그 다음 코드에 증감된 게 반영됩니다.

복잡하게 생각할 필요 없이
++가 변수 뒤에 오면 뒤에 반영된다. 고 생각하면 됩니다.

 


 

비교연산자
: 값을 비교해 boolean을 반환한다.

 

 

  • 1 > 0
    • 1은 0보다 크다는 식입니다.

    • 사실이니 true를 반환합니다.

비교식
<
<=
>
>=
==
!=

 

초보자가 헷갈릴 만한 거 몇개만 추가로 설명

 

  • a >=  b
    : b는 a 보다 작거나 같다.

  • a == b
    : a와 b는 같다.

  • a != b
    : a와 b는 다르다.

💡 코딩에서 =는 값을 대입하는 거여서, 비교식을 쓸 때는 ==를 씁니다.

 


 

논리연산자
true 와 false

 

 

  •   !
    • not

    • 논리부정

    • 논리식의 결과를 반대로 출력한다.

not true → false
not false → true
와 같이 생각하면 된다. 표현만 !로 하는 것일 뿐.

 


 

 

  • &
    • and

    • 논리곱

    • 논리 & 논리에서 모두 참일 경우에만 참true.


    • or

    • 논리합

    • 두 논리식 중 하나만 참이어도 참.


마찬가지로 and를 &로 표현했구나 생각하면 쉽습니다.
true and true is true.
true or false is false.
어떻게 보면 =는 is이라고 볼 수 있겠죠. 

 

 

  •  ^
    • xor
    • 배타적논리합
    • 하는 true, 하나는 false여야만 결과가 참이다.

 


 

단축평가
Short-circuit Evaluation
&& ||

 

&와 && 양 옆의 논리식은 같은데 결과는 다릅니다.

 

  • &와 &&나 양옆이 참이여야만 true가 반환된다는 것은 같습니다.

    • 단축평가는 말 그대로 먼저 오는 왼쪽 논리식이 false이면,
      뒤에 오는 오른쪽 논리식은 실행하지 않고 넘어가겠다는 겁니다.


  • ||

    • 마찬가지로 한쪽만 참이면 true이기 때문에, 오른쪽 식이 참이면 뒤의 논리식은 실행하지 않습니다.


실제 프로젝트에서는 단축평가 &&와 ||를 많이 씁니다.
단축평가는 굳이 필요없는 식을 실행하지 않아 성능적으로 더 우수하기 때문입니다. 
또한 &와 |는 비트연산에도 사용됩니다.
하지만 &와 &&의 차이는 확실히 알아두어야 합니다.

 


 

삼항연산자
조건 ? 참일 때 리턴 : 거짓일 경우 리턴

 

 

  • 연산자 형태가  ? : 입니다. 처음에는 이게 헷갈릴 수 있습니다.

    a ? b : c

    a조건이 참이면 b를 반환, 거짓이면 c를 반환한다는 겁니다.

삼항연산자를 썼을 때와의 차이.

  • if문 대신 많이 사용됩니다.
    코드가 많이 짧아지기 때문에 생각보다 많이 사용되는 연산자입니다.

 


 

비트 연산자

 

 

  • 정수를 비트로 계산하면 아래와 같습니다.

    • 10 → 0000 0000 0000 0000 0000 0000 0000 1010

    •  2  → 0000 0000 0000 0000 0000 0000 0000 0010


  • &로 1010과 0010에서 같은 부분을 찾습니다. 그럼 비트 10밖에 남지 않습니다. 정수로는 2입니다.

  • |로 1010과 0010에서 1이 든 부분을 모두 찾으면 1010입니다. 정수로는 10입니다.

  • 그외에도 비트연산자로는 ^, ~, <<, >>가 있습니다.

 


 

연산자 우선순위

 

종류 분류 연산자 연산방향
단항 전위  a++  a--
후위  ++a  --a
산술 곱셈  *  /  %
덧셈  +  -
시프트 시프트  <<  >>
관계 비교  >  <  >=  <=  instanceOf
동등  ==  !=
비트 and  &
xor  ^
or  |
논리 and  &&
or  ||
삼항 삼항  ? :
대입 대입  = += -= *= /= %= ...

 

❗우선순위에 상관없이 내가 원하는 식을 먼저 실행하고 싶다면 ( ) 로 묶어주면 됩니다.

 


 

사담

코딩을 배울 때 노션에 적어뒀던 내용들을 오블완 챌린지를 하는 겸 티스토리로 가져오고 있습니다.

처음 배울 때 헷갈렸던 부분과 회사에서 제가 중요하다고 느낀 부분들을 같이 적고 있습니다. 

 회사에서 프로젝트를 하다보면 사용하는 코드만 반복하다보니 까먹은 내용도 있고(비트연산자라든 지..) 한눈에 이해하기 쉽게 글을 코드예제와 함께 적다보니 생각보다 쉽지 않은 것 같습니다.

 그래도 제 글을 읽을 미래의 저와 다른 분들을 위해 좋은 포스팅을 쓰고자 합니다.

반응형

'☕ JAVA > ☕ Variables & Data Type' 카테고리의 다른 글

[JAVA]TreeSet  (1) 2024.11.25
[JAVA]HashSet  (0) 2024.11.23
[JAVA]Iterator, ListIterator, Enumeration  (0) 2024.11.21
[JAVA]NaN과 Infinity  (0) 2024.11.21
[JAVA]LinkedList와 Queue  (0) 2024.11.19