3-1. 연산자
항 & 연산자
항 : 연산에 사용하는 값, 연산자 : 연산에 사용하는 기호
단항 연산자 : 항이 1개인 연산자 ( ex. ++num, num++)
이항 연산자 : 항이 2개인 연산자 (ex. first + second)
삼항 연산자 : 항이 3개인 연산자 (ex. (score > 70) ? "PASS" : "FAIL";)
연산자 우선순위 : 단항 연산자 > 이항 연산자 > 삼항 연산자
대입 연산자 : 변수에 값을 대입하는 연산자 (ex. int height = 180; / total = original + bonus;)
부호 연산자 : 앞에 +를 붙이면 양수, -를 붙이면 음수로 만듦
(하지만, 대입 연산자를 사용하지 않고, 그냥 출력 결과에만 +/-를 붙이면 변수 값 자체는 변경되지 않는다.)
산술 연산자 : 더하기, 빼기, 나누기, 곱하기, 나머지(%)
(연산자 우선순위 : 곱하기, 나누기, 나머지 > 더하기, 빼기)
증가, 감소 연산자 : ++ / -- (단항 연산자로, 연산자 앞이나 뒤에 사용하여 값을 1만큼 늘리거나 줄일 수 있다.)
int dog_age = 7;
value = dog_age++; // value 값에 dog_age의 기존 값을 먼저 대입하고, dog_age값 1 증가로, value에는 7이 대입된다.
System.out.println(value); // 7이 출력된다.
System.out.println(dog_age); // 8이 출력된다.
int dog_age = 7;
value = --dog_age; // 먼저 dog_age 값이 1 감소하고, value 변수에 값이 대입되므로, value에는 6이 대입된다.
System.out.println(value); // 6이 출력된다.
System.out.println(dog_age); // 6이 출력된다.
관계 연산자 : <, <=, >, >=, ==, != (항이 2개인 연산자로, 두개의 항의 값을 비교하여, true, false의 결과값이 리턴된다.)
int bmi = 28;
boolean isObesity = (bmi > 25);
System.out.println(isObesity); // true가 반환된다.
논리 연산자 : &&, ||, ! (논리 곱(모두 참), 논리 합(하나 이상 참), 부정(단항 연산자로, 참/거짓 교환))
논리 연산의 경우, 논리 곱 연산(&&)의 경우, 앞의 항만이라도 거짓이면, 뒤의 항의 문장은 실행이 되지 않고, (9번 줄 참고)
논리 합 연산(||)의 경우, 앞의 항만이라도 참이면, 뒤의 항의 문장은 실행이 되지 않는다. (14번 줄 참고)
-> 결과값에서 12번 줄의 결과 i인 2가 그대로 출력, 17번 줄의 결과 i인 2가 그대로 출력되는 것 확인!)
복합 대입 연산자 : 대입 연산자와 다른 연산자를 조합하여, 하나의 연산자처럼 사용하는 연산자
my_age += 1; // my_age = my_age + 1과 같은 의미
조건 연산자 : 삼항 연산자로, 주어진 조건식이 참인 경우, 거짓인 경우에 각각 다른 결과 값이 나오는 연산자
boolean pass = (score >= 70) ? true : false; // score가 70점 이상이면 pass, 70점 미만이면 fail
3-2. 비트 연산자 : 비트 단위로 연산이 이루어지는 연산자
& 연산자 : 두 개의 비트 값이 모두 1이면 1, 하나라도 0이면 0 ( 0101 & 1011 -> 0001)
| 연산자 : 두 개의 비트 중 하나라도 1이면 1, 둘다 0이면 0 ( 0110 | 1001 -> 1111)
^ 연산자 : XOR 연산자로, 둘이 같은 값이면 0, 다른 값이면 1 (1001 ^ 0101 -> 1100)
~ 연산자 : 비트값을 0은 1로, 1은 0으로 바꿈 (~00001100 -> 11110011)
<< 연산자 : 왼쪽으로 비트를 이동 (00000110 << 3 -> 00110000)
>> 연산자 : 오른쪽으로 비트를 이동 (00001111 >> 2 -> 00000011, 뒤에 자리는 절삭됨.)
>>> 연산자 : >>와 동일하나, 왼쪽에 채워지는 비트 값을 부호 비트와 상관없이 무조건 0
3-3. 연산자 우선순위
단항 > 이항 > 삼항 연산자 순서
산술(+,-,*,/,%) > 관계(<,>,==,!=) > 논리(&&, ||) > 대입(+=, *=, =) 연산자 순서
'Java 스터디 일지 > Do it! 자바 프로그래밍 입문' 카테고리의 다른 글
[Do it!] 자바 프로그래밍 입문 2일차 스터디 - 4장 (0) | 2022.08.27 |
---|---|
[Do it!] 자바 프로그래밍 입문 1일차 스터디 - 2장 (0) | 2022.08.27 |
[Do it!] 자바 프로그래밍 입문 1일차 스터디 - 1장 (0) | 2022.08.27 |