자바언어에서 사용하는 연산자입니다.
1. 산술연산자
2항 연산자로서 피연산자에 대해 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지를 구하기 위해 사용합니다.
int n =10;
int n2 =3;
System.out.println(n+n2); //13
System.out.println(n-n2); //7
System.out.println(n*n2); //30
System.out.println(n/n2); //3
System.out.println(n/3.0); //3.3333
System.out.println(n%n2); //1
유의해서 봐야할 부분은 나누기와 나머지 구하기입니다. 10 나누기 3은 실제로는 3.333이지만 위에서 볼 수 있듯이 정수 나누기 정수는 정수값인 3으로 반환됩니다. %로 나머지를 구하면 1이 반환됩니다.
2. 대입연산자
변수에 새로운 값을 저장하는 경우에 사용합니다.
연산자 | 설명 | 동일한 방법 |
a = b | b를 a에 저장 | |
a += b | a와 b를 더해서 다시 a에 저장 | a = a + b |
a -= b | a에서 b를 빼서 다시 a에 저장 | a = a - b |
a *= b | a와 b를 곱해서 다시 a에 저장 | a = a * b |
a /= b | a에서 b를 나누고 다시 a에 저장 | a = a / b |
a %= b | a에서 b를 나눈 나머지를 다시 a에 저장 | a = a % b |
int a=10;
a+=1;
System.out.println(a); //11
a= a+1;
System.out.println(a); //12
int x =10;
int x2 =x;
x2 += x; //x2=20
x2 -= x; //x2=10
x2 *= x; //x2=100
x2 /= x; //x2=10
x2 %= x; //x2=0
System.out.println(x2); //0
3. 증감연산자
기존 변수가 가지고 있는 값을 1 증가하거나 1 감소하는 경우에 사용합니다. 증감연산자는 단항 연산자로서 변수의 앞 또는 뒤에 올 수 있으며 앞에 오는 경우 전위 연산자, 뒤에 오는 경우 후위 연산자라고 합니다.
연산자 | 설명 |
++n | n값이 1 증가하고 n을 사용 |
--n | n값이 1 감소하고 n을 사용 |
n++ | n을 사용하고 n값이 1 증가 |
n-- | n을 사용하고 n값이 1 감소 |
int x = ++n; | n값이 1 증가하고 n을 x에 할당 |
int x = n++; | n을 x에 할당하고 n값이 1 증가 |
int a=3;
++a; // a=a+1
System.out.println(a); //4
a--; // a=a-1
System.out.println(a); //3
int x = 5;
int y = ++x; //x=6 증가 -> y=6 할당
System.out.println(x+" "+y); //6 6
int x2 = 5;
int y2 = x2++; //y2=5 할당, x2=6 증가
System.out.println(x2+" "+y2); //6 5
4. 비교연산자
두 값의 크기를 비교할 때 사용하며, 연산 결과는 반드시 true 또는 false가 나옵니다.
연산자 | 설명 |
a == b | a가 b와 같은가? |
a > b | a가 b보다 큰가? |
a >= b | a가 b보다 크거나 같은가? |
a < b | a가 b보다 작은가? |
a <= b | a가 b보다 작거나 같은가? |
a != b | a가 b와 다른가? |
int xyz=5;
int xyz2=3;
boolean result = xyz == xyz2;
System.out.println(result); //false
System.out.println(xyz == xyz2); //false
System.out.println(xyz != xyz2); //true
System.out.println(xyz > xyz2); //true
System.out.println(xyz >= xyz2); //true
System.out.println(xyz < xyz2); //false
System.out.println(xyz <= xyz2); //false
5. 논리연산자
true와 false값을 이용하여 논리연산을 수행합니다. 연산 결과는 반드시 true 또는 false가 나옵니다.
연산자 | 설명 |
&& | AND 연산자 |
|| | OR 연산자 |
! | NOT 연산자 |
System.out.println(3==4 && 4>3);
System.out.println(! true); //false
System.out.println(! false); //true
System.out.println(true || true); //true
System.out.println(true || false); //true
System.out.println(false || true); //true
System.out.println(false || false); //false
System.out.println(true && true); //true
System.out.println(true && false); //false
System.out.println(false && true); //false
System.out.println(false && false); //false
* short circuit operation
위의 항 중 일부에 노란색 밑줄이 쳐져 있는 것을 볼 수 있습니다.
마우스를 가져가 보면 Dead code 라고 뜹니다. 즉 실행되지 않은 코드라는 것입니다. || 연산자의 경우, 첫 번째 항의 값이 true인 경우 두 번째 항의 값을 검사하지 않아도 결과가 true입니다. && 연산자의 경우, 첫 번째 항의 값이 false인 경우 두 번째 항의 값을 검사하지 않아도 결과가 false입니다. 두 번째 항은 검사하지 않고 빠르게 결과값을 얻을 수 있어서 short circuit operation이라고 부릅니다.
6. 3항 연산자
3개의 항으로 구성되는 연산자로, 조건식이 true이면 값1을 변수에 저장하고, false이면 값2를 변수에 저장합니다.
변수 = (조건식)? 값1 : 값2;
다음과 같이 3항 연산자를 이용해 최대값을 구할 수 있습니다.
int a =12;
int b =4;
int c =19;
int max = (a>b)? a:b;
System.out.println(max); //12
max = (max>c)? max:c;
System.out.println(max); //19
이상으로 자바에서 사용하는 다양한 연산자에 대해 정리해 보았습니다.
'JAVA' 카테고리의 다른 글
[JAVA] 자바 문장 - 분기문 (if 문, if-else 문, switch 문) (0) | 2022.05.18 |
---|---|
[JAVA] 자바 문자열(String) 함수 (0) | 2022.05.18 |
[JAVA] 데이터 형 변환 (묵시적, 명시적) (0) | 2022.05.17 |
[JAVA] 자바 변수(variable), 변수 선언과 초기화 (0) | 2022.05.17 |
[JAVA] 자바 식별자(Identifier)와 데이터 형(Date Type) (0) | 2022.05.17 |
댓글