연산자(Operator)
종류 | 구분 | 연산자 | 우선순위 |
최우선 연산자 | 직접 접근 연산자 | () . {} | 1 |
단항 연산자 | + - ! (자료형) ++ -- ~ | 2 | |
이항 연산자 | 산술 연산자 | * / % | 3 |
+ - | 4 | ||
쉬프트 연산자 | >> << >>> | 5 | |
비교 연산자 | > < >= <= | 6 | |
== != | 7 | ||
논리 연산자 | & | 8 | |
^ | 9 | ||
| | 10 | ||
&& | 11 | ||
|| | 12 | ||
삼항 연산자 | (조건식) ? 참일때 사용값 : 거짓일때 사용값 | 13 | |
대입 연산자 | 순수 대입 | = | 14 |
복합 대입 | += -+ *= /= %= | ||
<<= >>= >>>= | |||
&= ^= |= | |||
나열 연산자 | , | 15 |
1. 단항 연산자
1) 부정 연산자 : 논리형 값을 부정하여 반전시키는 연산
부정의 부정 -> 긍정
비교연산(다른 메소드의 결과)의 결과를 부정할 때 많이 사용
// 부정연산자 사용하기
// 부정연산자 : 논리형 값을 부정하여 반전시키는 연산
System.out.println("부정연산자 테스트");
boolean flag = true;
System.out.println(flag);
// 논리형에 사용
System.out.println(!flag); // 결과 : false
System.out.println(!!flag); // 결과 : true 부정의 부정 = 원래대로
// 부정연산자는 비교연산(다른 메소드의 결과)의 결과를 부정할 때 많이 사용한다.
2) 증가, 감소 연산자 : ++값, --값, 값++, 값--
값에 1을 더하거나 빼고 저장하는 연산 -> 숫자연산
전위연산과 후위연산이 차이가 나는 경우? -> 다른연산과 같이 사용 할 때
개수를 세거나 for문에서 많이 사용한다.
// 증가, 감소 연산자
// ++값, --값 또는 값++, 값--
// 값에 +1하고 저장하는 연산 -> 숫자연산
int num = 10;
System.out.println(num); // num == 10
num++; // num == 11
num++; // num == 12
System.out.println(num); // 결과 : 12
// 사용 시기 : 개수를 셀때, for문에서 많이 사용
num--; // num == 11
num--; // num == 10
System.out.println(num); // 결과 : 10
++num; // num == 11
++num; // num == 12
System.out.println(num); // 결과 : 12
// 전위연산과 후위연산의 차이가 발생하는 경우?
// 다른연산과 같이 사용할 때.
int num2 = ++num + 10; // 23
num = 12;
int num3 = num++ + 10; // 22 -> 출력값은 22이나, num == 23
3) 산술 연산자 : + - * / %(나머지연산)
리터럴끼리 연산이 가능하다.
변수와 리터럴의 연산도 가능하다.
문자열은 + 연산만 가능하다.
// 더하기 연산
System.out.println(num + num2);
int result = num + num2;
System.out.println(result);
System.out.println(100 + 100); // 리터럴끼리 연산 할 수 있다.
System.out.println(result + 200); // 변수와 리터럴을 연산 할 수 있다.
// num(값) + num2(값) = (num + num2 계산결과)
// 10 + 20 = 30
System.out.println(num + " + " + num2 + " = " + (num + num2));
System.out.println(num + " + " + num2 + " = " + result);
// 빼기 연산
System.out.println(num - num2);
String str = "가나다";
String str1 = "ABC";
// System.out.println(str - str1); -> 에러 발생(문자열에는 빼기연산이 정의되지 않음)
// 곱하기
System.out.println(num * num2);
// 나누기
System.out.println((double)num / num2);
System.out.println((double)(num / num2)); // ()는 최우선 연산자 -> num / num2를 먼저 계산해버림.
// 나머지 연산(나머지 값 가져오기) -> %
int num3 = 5;
int num4 = 9;
System.out.println(num3 % num4); // 결과 : 5
System.out.println(5 % 3); // 결과 : 2
'Java' 카테고리의 다른 글
제어문 - 중첩 반복문 (0) | 2021.09.16 |
---|---|
제어문 - 반복문(for, while) (0) | 2021.09.15 |
제어문 - 조건문(if, switch) (0) | 2021.09.14 |
연산자(Operator) - 2 (0) | 2021.09.13 |
변수(Variable), 상수 (0) | 2021.09.09 |