본문 바로가기
Java

연산자(Operator)

by ZIAHO 2021. 9. 12.

연산자(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