헬린코린이

[JAVA] 연산자 본문

Programming/Java

[JAVA] 연산자

HCD 2022. 11. 8. 22:17

연산자에는 산술, 대입, 복합 대입, 비교, 논리, 조건... 연산자가 있다.

 

우선 산술연산자에는 +, -, *, /, % 가 있다.

코드로 보여주겠습니다.

int a = 10 + 5;
int a = 10 - 5;
int a = 10 * 5;
int a = 10 / 5;
int a = 10 % 5;

이렇게 정의할 수 있다.

다른 것은 수학시간에 배웠을 거라 생각하고 마지막에 % 연산자를 보겠다.

% 연산자는 처음 본 사람들에게는 생소하겠지만 쉽게 이야기하면 나머지를 구하는 연산자다

저 코드를 출력시켜보면 console창에는 5가 출력될 것이다.

 

다음으로는 대입연산자이다.

우리는 이 연산자를 처음부터 써왔다. = 이것이 대입 연산자이다 따로 설명은 필요 없을 것 같다.

int a = 10;

 

복합 연산자는 말 그대로 연산자를 합한 거다 예를 들어보겠습니다.

a += b;
a -= b;
a *= b;
a /= b
a %= b;

코드를 보고 이해하기 어렵다면 풀어서 써보면 도움이 된다.

a = a + b;
a = a - b;
a = a * b;
a = a / b;
a = a % b;

이렇게 하면 이해하기 쉬울 것이다.

근데 왜 이렇게 줄여서 쓰냐 하면 아래 코드는 연산자가 2개이고 위에 코드는 복합 연산자 그 자체로 하나로 보기 때문에

연산자가 1개이다 2개보다는 1개가 빠르니까 근데 미미한 차이라 차이는 크게 없을 거다

 

증감 연산자는 증가 연산자 감소 연산자를 합쳐서 증감 연산자로 칭한다.

증감 연산자에는 전위 연산자와 후위 연산자가 있는데

++1;
--1;
1--;
1++;

앞에 ++이 오면 앞에 있으니까 전위

뒤에 ++이 오면 뒤에 있으니까 후위 쉽다.

두 연산자가 무슨 차이가 있나 생각하겠지만 상당하다.

이걸 문법에서 쓴다면 예를 들어보겠다.

int i = 3;
int a = i++;

int i = 3;
int a = ++i;

첫 번째 코드는 출력하면 3이 나올 것이고

두 번째 코드는 출력하면 4가 나올 것이다.

이유는 간단하다  코드 그대로 첫 번째는 'i' 값을 'a' 변수에 추가하고 1 증가하는 거다. 

그러고 나서 'i'를 출력하면 4가 나올 것이다.

두 번째 코드는 'a'변수에 1 증가하고 증가한 값을 추가한 것이다. 조금만 생각해보면 금방 이해할 수 있을 것이다.

 

비교 연산자는 다들 보면 다 알 것이다.

그리고 비교 연산자는 true/false를 반환한다.

a > b;
a < b;
a <= b;
a >= b;
a == b;
a != b; //! NOT 부정

어느 쪽이 큰 것 인지 <=연산자는  작거나 같다이고 

==연산자는 같다 이다. 프로그래밍에서는 ==은 갔다 와 같다고 할 수 있다.

!=연산자는 true를 false

                  false를 true로 반환한다.

 

논리 연산자에는 &&  | |  이 있습니다.

&&은 AND, 그리고

| | 은 OR, 또는 이라고 생각하시면 좋을 것 같습니다.

이 연산자도 true/false를 반환합니다.

int num1 = 10;
int num2 = 20;
System.out.println(1 < num1 && num2 > 2);
System.out.println(1 < num1 || num2>2);

이런 코드가 있을 때 

&&은 둘 다 true면 true를 반환합니다.

| | 은 둘 중 하나라도 true면 true를 반환합니다.

 

마지막으로 조건 연산자인데 제가 제일 좋아하는 연산자입니다...(TMI)

우선 코드 먼저 보겠습니다.

int a > b ? a : b;

이해하기 쉽게 말씀드리겠습니다.

? 기준으로 앞이 조건식이고 이 조건식이 true면 a를 false면 b를 반환합니다 이 것만 알면 더 어려운 조건 연산자도 이해할 수 있습니다.

int min = a < b ? a < c ? a : c : b < c ? b : c;

한 번 하나씩 끊어서 보시면 이해하기 쉬울 겁니다.

근데 이런 조건식 안에 조건식을 조건 연산자를 이용해서 사용하는 일은 드물다고 합니다.

Comments