공부/Java

자바 연산자

Stair 2024. 8. 20. 22:20
반응형

연산자는 연산을 할 때 사용하는 것들이다. 연산자의 종류로는 산술연산자, 증감 연산자, 비교 연산자, 논리 연산자, 대입 연산자, 삼항 연산자 등이 있다.

 

연산자와 피연산자

ex) 3 + 4 라고 할때, 연산자는 + 이고 피연산자는 3, 4가 된다.

 

 

산술 연산자 : 산술 연산자는 +, -, *, / 와 같이 계산을 수행하는 기호를 연산자라고 한다.

산술 연산자의 종류 : +, -, *, /, %

 

수학의 기초가 되는 덧셈, 뺄셈, 곱셈, 나눗셈이 있다.

나눗셈은 몫을 구하는 / 와 나머지를 구하는 %로 구분되어있다.

 

또한 자바는 int 형 끼리 계산을 하게 되면 계산 결과도 int 형을 사용하게 된다.

 

** 주의) 10/0 과 같이 숫자는  0으로 나눌 수 없다. 0으로 나누게 되면 아래와 같은 에러 메세지를 출력하게 되니 주의하자

 

Exception in thread "main" java.lang.ArithmeticException: / by zero
at operator.Operator1.main(Operator1.java:27)

 

라는 에러 메세지가 나타나게 된다.

 

또한 문자열과 문자열을 더할 수 있다. 문자열 + 숫자열도 가능하다.

 

자바의 특징 중 하나인데 자바는 문자열인 String 타입에 다른 타입을 더해도 대상 타입을 문자열로 변경하게 된다.

 

 

 

 

연산자엔 우선순위 또한 존재한다.

 

우리가 어렸을 적 +와 *가 같이 존재하는 식이면 곱셈을 먼저 하는 식으로 상식적으로 통용되는 우선순위이다.

 

애매모호 하다 싶으면 코드가 길어지더라도 명확하고 단순하게 괄호를 넣는것이 낫다. 개발에서 가장 중요한 것은 단순함과 명확함이기 때문이다.

(그냥 이거 뭐지 싶으면 그냥 괄호 때려넣는게 좋다)

 

 

 

 

증감 연산자

다음은 증감연산자이다. 증감 연산자는 전위 증감 연산자와 후위 증감 연산자가 존재한다.

전위 증감 연산자는 ++a와 같이 쓰이고, 후위 증감 연산자는 a++ 같은 형식으로 쓰인다.

 

전위 증감 연산자는 값을 증가 시킨 후 계산을 하게 되고, 후위 증감 연산자는 다른 식을 계산 후 값을 증가하게 된다.

 

단순히 a++; ++a;로 작성되는 코드는 다른 연산자가 없기 때문에 우선순위 따질 것 없이 그냥 a = a + 1; 하는 것과 일치한다.

 

 

비교 연산자

다음은 비교연산자이다.

비교 연산자는 값이 일치하는지, 일치하지 않는지, 큰지, 작은지, 크거나 같은지, 작거나 같은지 등을 나타내줄 수 있다.

비교 연산자 : ==, !=, >, < , >=, <=

 

 

간단한 예제로 연습이 가능하다.

 

참고로 문자열도 비교가 가능하다.

문자열 비교는 equals를 사용하여 비교를 한다.

ex)str1.equals(str2);

 

 

단순하게 == 때려넣어서 비교를 해도 동일한 결과가 나타나긴 하지만, 내 기억상에 문자열은 맨 첫 메모리 주소를 기억하여 그 값들을 비교하기에 그렇게 하면 안되는 걸로 알고있다.

학부때 배운거라 기억이 애매모호 하니 그냥 넘어가도 좋다. 나중에 다시 배우게 되면 올릴 예정이다.

 

 

논리 연산자

다음은 논리연산자이다.

논리연산은 참과 거짓을 구하는 연산이다. &&연산 ||연산 !연산이 있다.

&&는 값이 둘 다 참일때, ||는 하나 이상 참일때, not은 반대 연산이다

 

상당히 이지피지이므로 훑기만 해도 이해가 잘 간다.

 

 

복합 대입 연산자

마지막으로 복합 대입 연산자이다.

기본적인 대입 연산자는 = 이지만 계산식을 축약하기 위해 복합 대입 연산자가 만들어졌다.

+=, -=, *=, /=, %= 등이 존재하며, 예를 들어 a = 10; 일때 a+= 5;를 실행하게 되면 a = a + 5;가 되는 결과이다.

 

 

참 쉽죠잉?

 

마지막으로 약간의 복습을 한 후 마무리하였다.

해설은 딱히 없어도 이해가 쉽다고 생각하기에 해설을 적진 않는다.

반응형

'공부 > Java' 카테고리의 다른 글

자바 while문  (0) 2024.08.22
자바 if문, switch 문  (0) 2024.08.21
자바 변수 명명 규칙  (0) 2024.08.20
자바 변수(1)  (0) 2024.08.19
자바란 무엇인가?  (0) 2024.08.19