연산
- 데이터를 처리하여 결과를 산출하는 것
x = y + z라는 식을 봤을 때
y와 z를 더한 값을 x에 대입한다는 것을 의미한다.
'+'는 연산자를 뜻한다.
x, y, z는 피연산자라고 한다
x = y+ z 는 연산식이다
연산자 (Operations)
-
연산에 사용되는 표시나 기호
-
ex) +, -, *, /, %, = ...
피연산자 (Operand)
-
연산 대상이 되는 데이터
-
리터럴, 변수등이 있다.
연산자의 종류
부호 연산자 Ex) +, -
산술연산자 Ex) +, -, *, /, %
증감 연산자 Ex) ++, --
피연산자가 1개인 연산자는 단항 연산자
부호 연산자와, 증감연산자는 단항 연산자이다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int i1 = -5;
int i2 = +i1;
int i3 = -i1;
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
}
}
int i1 = -5에서
-는 부호 연산자, 5는 피연산자이다.
변수앞에 부호연산자를 선언할 수도 있다.
이것을 보았을때 부호연산자 '+'는 부호를 그대로 유지시켜주고 '-'는 부호를 바꿔주는 역할을 한다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int i4 = ++i3;
int i5 = i3++;
int i6 = --i3;
int i7 = i3--;
System.out.println(i4);
System.out.println(i5);
System.out.println(i6);
System.out.println(i7);
}
}
증감연산자는 피연산자의 앞에 붙일 수도 있고, 뒤에 붙일수도 있다.
만약 증감연산자가 앞에 있을경우 먼저 계산을 하고 다음코드로 넘어가지만
뒤에 있을경우 다음코드로 넘어간후 계산이 된다.
package JAVAStudy;
public class Operator {
public static void main(String[] args){
int i = 5;
int j = 2;
System.out.println(i + j);//덧셈
System.out.println(i - j);//뺄셈
System.out.println(i * j);//곱셈
System.out.println(i / j);//나눗셈
System.out.println(i / (double)j);//실수값이 나오는 나눗셈
System.out.println(i % j);//나머지
}
}
산술연산자 사용예시
정수끼리의 계산은 정수로만 나온다.
값을 실수로 나오게 할려면 두 변수중 하나는 실수형 변수가 되어야 한다.
비교연산자
- ==(같다) , !=(다르다) , <(작다) , >(크다) , <= (작거나 같다), >=(크거나 같다)
- 비교 연산자의 결과는 boolean이다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int i = 10;
int j = 10;
System.out.println(i == j);
System.out.println(i != j);
System.out.println(i < j);
System.out.println(i <= j);
System.out.println(i > j);
System.out.println(i >= j);
}
}
같다라는 걸 표시할땐 ==라고 해야함. (=는 대입연산자)
대입연산자
- =, -=, +=, *=, /=, %=
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int i = 10;
i += 10;
System.out.println(i);
System.out.println(i -= 5);
System.out.println(i);
}
}
i = 10에서 =는 대입연산자.
+=, -=는 복합 대입연산자라고 한다.
연산자 우선순위
-
최우선연산자 ( ., [], () )
-
단항연산자 ( ++,--,!,~,+/- : 부정, bit변환>부호>증감)
-
산술연산자 ( *,/,%,+,-,shift) < 시프트연산자 ( >>,<<,>>> ) >
-
비교연산자 ( >,<,>=,<=,==,!= )
-
비트연산자 ( &,|,,~ )
-
논리연산자 (&& , || , !)
-
삼항연산자 (조건식) ? :
-
대입연산자 =,*=,/=,%=,+=,-=
-
논리연산자 중 and 연산과 or 연산이 나왔을 경우 and 연산이 먼저 수행된다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int a = 5;
int b = 10;
int c = 5;
System.out.println(a - b * c );
System.out.println(a < 5 && b > 5);
}
}
곱셈이 우선순위가 높기 때문에 b와c를 먼저 곱한다. 그런 다음 a에서 b와 c를 곱한 값을 뺀다.
비교연산자가 논리 연산자 보다 우선순위가 높다.
단 증감 연산자일 경우에 전위 연산자인지 후위 연산자 인지에 따라서 우선 순위가 바뀔 수 있다.
비교연산자가 우선순위가 더 높기 때문에 비교를 먼저하고 논리연산자가 실행이 된다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int a = 5;
System.out.println(++a - 5);
}
}
단항 연산자이면서, 전위 연산자인 ++ 가 먼저 연산된다. a가 6으로 바뀐 후 5 를 빼게 되므로 결과는 1이 나온다.
package JAVAStudy;
public class Operator {
public static void main(String[] args) {
int a = 5;
System.out.println(a++ - 5);
System.out.println(a);
}
}
단항 연산자이면서, 후위 연산자인 ++ 가 나중에 연산된다.
a가 5인 상태에서 5를 뺀 후에 a++(a=a+1) 이 실행되므로 출력결과는 0이 나온다.
'개발 공부 > JAVA 자바' 카테고리의 다른 글
[JAVA 공부] 반복문 (0) | 2020.10.13 |
---|---|
[JAVA 공부] 조건문 (0) | 2020.10.07 |
[JAVA 공부] 기본형 타입(형) 변환 (0) | 2020.09.30 |
[JAVA 공부] 기본형 타입 (0) | 2020.09.28 |
[JAVA 공부] 상수 (0) | 2020.09.27 |